Spawn the network worker with spawn_blocking (#5909)

* Spawn the network worker with spawn_blocking

* Some comment adjustments

* Fix shutdown not working
This commit is contained in:
Pierre Krieger authored and GitHub committed 2020-05-12 17:12:32 +02:00
1 parent b4b1293c78
commit 9220bdf361
2 files changed
+17 -6

No files matched your search

+9 -5
View File
@@ -217,12 +217,16 @@ impl<C: SubstrateCli> Runner<C> {
// and drop the runtime first.
let _telemetry = service.telemetry();
let f = service.fuse();
pin_mut!(f);
{
let f = service.fuse();
self.tokio_runtime
.block_on(main(f))
.map_err(|e| e.to_string())?;
}
self.tokio_runtime
.block_on(main(f))
.map_err(|e| e.to_string())?;
// The `service` **must** have been destroyed here for the shutdown signal to propagate
// to all the tasks. Dropping `tokio_runtime` will block the thread until all tasks have
// shut down.
drop(self.tokio_runtime);
Ok(())