feat(swarm): Make executor for connection tasks explicit (#3097)

Previously, the executor for connection tasks silently defaulted to a `futures::executor::ThreadPool`. This causes issues such as https://github.com/libp2p/rust-libp2p/issues/2230.

With this patch, we force the user to choose, which executor they want to run the connection tasks on which results in overall simpler API with less footguns.

Closes #3068.
This commit is contained in:
Hannes
2022-11-15 15:26:03 +01:00
committed by GitHub
parent d8fe7bf49f
commit d5ea93dd71
41 changed files with 384 additions and 181 deletions

View File

@ -291,7 +291,7 @@ fn build_relay() -> Swarm<Relay> {
let transport = upgrade_transport(MemoryTransport::default().boxed(), local_public_key);
Swarm::new(
Swarm::with_threadpool_executor(
transport,
Relay {
ping: ping::Behaviour::new(ping::Config::new()),
@ -318,7 +318,7 @@ fn build_client() -> Swarm<Client> {
local_public_key,
);
Swarm::new(
Swarm::with_threadpool_executor(
transport,
Client {
ping: ping::Behaviour::new(ping::Config::new()),