From 71d3863a7883237c046aeda0d3a15ce5517235ea Mon Sep 17 00:00:00 2001 From: pscott <30843220+pscott@users.noreply.github.com> Date: Wed, 29 Apr 2020 20:47:42 +0200 Subject: [PATCH] Remove background_tasks field in ServiceBuilder (#5830) * Spawn tasks instead of pushing them to background_tasks * Remove unnecessary mut keyword for self * Remove background_tasks field in ServiceBuilder --- substrate/client/service/src/builder.rs | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/substrate/client/service/src/builder.rs b/substrate/client/service/src/builder.rs index 74055bf976f..832fd5b8ea7 100644 --- a/substrate/client/service/src/builder.rs +++ b/substrate/client/service/src/builder.rs @@ -96,7 +96,6 @@ pub struct ServiceBuilder<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, rpc_extensions: TRpc, remote_backend: Option<Arc<dyn RemoteBlockchain<TBl>>>, marker: PhantomData<(TBl, TRtApi)>, - background_tasks: Vec<(&'static str, BackgroundTask)>, block_announce_validator_builder: Option<Box<dyn FnOnce(Arc<TCl>) -> Box<dyn BlockAnnounceValidator<TBl> + Send> + Send>>, } @@ -311,7 +310,6 @@ impl ServiceBuilder<(), (), (), (), (), (), (), (), (), (), ()> { transaction_pool: Arc::new(()), rpc_extensions: Default::default(), remote_backend: None, - background_tasks: Default::default(), block_announce_validator_builder: None, marker: PhantomData, }) @@ -395,7 +393,6 @@ impl ServiceBuilder<(), (), (), (), (), (), (), (), (), (), ()> { transaction_pool: Arc::new(()), rpc_extensions: Default::default(), remote_backend: Some(remote_blockchain), - background_tasks: Default::default(), block_announce_validator_builder: None, marker: PhantomData, }) @@ -469,7 +466,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: self.transaction_pool, rpc_extensions: self.rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: self.block_announce_validator_builder, marker: self.marker, }) @@ -514,7 +510,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: self.transaction_pool, rpc_extensions: self.rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: self.block_announce_validator_builder, marker: self.marker, }) @@ -553,7 +548,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: self.transaction_pool, rpc_extensions: self.rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: self.block_announce_validator_builder, marker: self.marker, }) @@ -618,7 +612,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: self.transaction_pool, rpc_extensions: self.rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: self.block_announce_validator_builder, marker: self.marker, }) @@ -647,7 +640,7 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> /// Defines which transaction pool to use. pub fn with_transaction_pool<UExPool>( - mut self, + self, transaction_pool_builder: impl FnOnce( sc_transaction_pool::txpool::Options, Arc<TCl>, @@ -665,7 +658,7 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> )?; if let Some(background_task) = background_task{ - self.background_tasks.push(("txpool-background", background_task)); + self.task_manager.spawn_handle().spawn("txpool-background", background_task); } Ok(ServiceBuilder { @@ -682,7 +675,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: Arc::new(transaction_pool), rpc_extensions: self.rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: self.block_announce_validator_builder, marker: self.marker, }) @@ -711,7 +703,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: self.transaction_pool, rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: self.block_announce_validator_builder, marker: self.marker, }) @@ -740,7 +731,6 @@ impl<TBl, TRtApi, TCl, TFchr, TSc, TImpQu, TFprb, TFpp, TExPool, TRpc, Backend> transaction_pool: self.transaction_pool, rpc_extensions: self.rpc_extensions, remote_backend: self.remote_backend, - background_tasks: self.background_tasks, block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), marker: self.marker, }) @@ -852,7 +842,6 @@ ServiceBuilder< transaction_pool, rpc_extensions, remote_backend, - background_tasks, block_announce_validator_builder, } = self; @@ -947,12 +936,6 @@ ServiceBuilder< let spawn_handle = task_manager.spawn_handle(); - // Spawn background tasks which were stacked during the - // service building. - for (title, background_task) in background_tasks { - spawn_handle.spawn(title, background_task); - } - { // block notifications let txpool = Arc::downgrade(&transaction_pool); -- GitLab