@@ -314,7 +314,6 @@ pub type CompatibleSubsystem<M> = Box<dyn Subsystem<OverseerSubsystemContext<M>>
314314/// [`Subsystem`]: trait.Subsystem.html
315315#[ allow( dead_code) ]
316316struct OverseenSubsystem < M > {
317- subsystem : CompatibleSubsystem < M > ,
318317 instance : Option < SubsystemInstance < M > > ,
319318}
320319
@@ -407,7 +406,7 @@ where
407406 /// where C: SubsystemContext<Message=CandidateValidationMessage>
408407 /// {
409408 /// fn start(
410- /// &mut self,
409+ /// self,
411410 /// mut ctx: C,
412411 /// ) -> SpawnedSubsystem {
413412 /// SpawnedSubsystem(Box::pin(async move {
@@ -423,7 +422,7 @@ where
423422 /// where C: SubsystemContext<Message=CandidateBackingMessage>
424423 /// {
425424 /// fn start(
426- /// &mut self,
425+ /// self,
427426 /// mut ctx: C,
428427 /// ) -> SpawnedSubsystem {
429428 /// SpawnedSubsystem(Box::pin(async move {
@@ -438,8 +437,8 @@ where
438437 /// let spawner = executor::ThreadPool::new().unwrap();
439438 /// let (overseer, _handler) = Overseer::new(
440439 /// vec![],
441- /// Box::new( ValidationSubsystem) ,
442- /// Box::new( CandidateBackingSubsystem) ,
440+ /// ValidationSubsystem,
441+ /// CandidateBackingSubsystem,
443442 /// spawner,
444443 /// ).unwrap();
445444 ///
@@ -458,8 +457,8 @@ where
458457 /// ```
459458 pub fn new (
460459 leaves : impl IntoIterator < Item = BlockInfo > ,
461- validation : CompatibleSubsystem < CandidateValidationMessage > ,
462- candidate_backing : CompatibleSubsystem < CandidateBackingMessage > ,
460+ validation : impl Subsystem < OverseerSubsystemContext < CandidateValidationMessage > > + Send ,
461+ candidate_backing : impl Subsystem < OverseerSubsystemContext < CandidateBackingMessage > > + Send ,
463462 mut s : S ,
464463 ) -> SubsystemResult < ( Self , OverseerHandler ) > {
465464 let ( events_tx, events_rx) = mpsc:: channel ( CHANNEL_CAPACITY ) ;
@@ -658,7 +657,7 @@ fn spawn<S: Spawn, M: Send + 'static>(
658657 spawner : & mut S ,
659658 futures : & mut FuturesUnordered < RemoteHandle < ( ) > > ,
660659 streams : & mut StreamUnordered < mpsc:: Receiver < ToOverseer > > ,
661- mut s : CompatibleSubsystem < M > ,
660+ s : impl Subsystem < OverseerSubsystemContext < M > > ,
662661) -> SubsystemResult < OverseenSubsystem < M > > {
663662 let ( to_tx, to_rx) = mpsc:: channel ( CHANNEL_CAPACITY ) ;
664663 let ( from_tx, from_rx) = mpsc:: channel ( CHANNEL_CAPACITY ) ;
@@ -675,7 +674,6 @@ fn spawn<S: Spawn, M: Send + 'static>(
675674 } ) ;
676675
677676 Ok ( OverseenSubsystem {
678- subsystem : s,
679677 instance,
680678 } )
681679}
@@ -692,8 +690,8 @@ mod tests {
692690 impl < C > Subsystem < C > for TestSubsystem1
693691 where C : SubsystemContext < Message =CandidateValidationMessage >
694692 {
695- fn start ( & mut self , mut ctx : C ) -> SpawnedSubsystem {
696- let mut sender = self . 0 . clone ( ) ;
693+ fn start ( self , mut ctx : C ) -> SpawnedSubsystem {
694+ let mut sender = self . 0 ;
697695 SpawnedSubsystem ( Box :: pin ( async move {
698696 let mut i = 0 ;
699697 loop {
@@ -717,8 +715,10 @@ mod tests {
717715 impl < C > Subsystem < C > for TestSubsystem2
718716 where C : SubsystemContext < Message =CandidateBackingMessage >
719717 {
720- fn start ( & mut self , mut ctx : C ) -> SpawnedSubsystem {
718+ fn start ( self , mut ctx : C ) -> SpawnedSubsystem {
719+ let sender = self . 0 . clone ( ) ;
721720 SpawnedSubsystem ( Box :: pin ( async move {
721+ let _sender = sender;
722722 let mut c: usize = 0 ;
723723 loop {
724724 if c < 10 {
@@ -759,7 +759,7 @@ mod tests {
759759 impl < C > Subsystem < C > for TestSubsystem4
760760 where C : SubsystemContext < Message =CandidateBackingMessage >
761761 {
762- fn start ( & mut self , mut _ctx : C ) -> SpawnedSubsystem {
762+ fn start ( self , mut _ctx : C ) -> SpawnedSubsystem {
763763 SpawnedSubsystem ( Box :: pin ( async move {
764764 // Do nothing and exit.
765765 } ) )
@@ -777,8 +777,8 @@ mod tests {
777777
778778 let ( overseer, mut handler) = Overseer :: new (
779779 vec ! [ ] ,
780- Box :: new ( TestSubsystem1 ( s1_tx) ) ,
781- Box :: new ( TestSubsystem2 ( s2_tx) ) ,
780+ TestSubsystem1 ( s1_tx) ,
781+ TestSubsystem2 ( s2_tx) ,
782782 spawner,
783783 ) . unwrap ( ) ;
784784 let overseer_fut = overseer. run ( ) . fuse ( ) ;
@@ -827,8 +827,8 @@ mod tests {
827827 let ( s1_tx, _) = mpsc:: channel ( 64 ) ;
828828 let ( overseer, _handle) = Overseer :: new (
829829 vec ! [ ] ,
830- Box :: new ( TestSubsystem1 ( s1_tx) ) ,
831- Box :: new ( TestSubsystem4 ) ,
830+ TestSubsystem1 ( s1_tx) ,
831+ TestSubsystem4 ,
832832 spawner,
833833 ) . unwrap ( ) ;
834834 let overseer_fut = overseer. run ( ) . fuse ( ) ;
@@ -846,7 +846,7 @@ mod tests {
846846 impl < C > Subsystem < C > for TestSubsystem5
847847 where C : SubsystemContext < Message =CandidateValidationMessage >
848848 {
849- fn start ( & mut self , mut ctx : C ) -> SpawnedSubsystem {
849+ fn start ( self , mut ctx : C ) -> SpawnedSubsystem {
850850 let mut sender = self . 0 . clone ( ) ;
851851
852852 SpawnedSubsystem ( Box :: pin ( async move {
@@ -872,7 +872,7 @@ mod tests {
872872 impl < C > Subsystem < C > for TestSubsystem6
873873 where C : SubsystemContext < Message =CandidateBackingMessage >
874874 {
875- fn start ( & mut self , mut ctx : C ) -> SpawnedSubsystem {
875+ fn start ( self , mut ctx : C ) -> SpawnedSubsystem {
876876 let mut sender = self . 0 . clone ( ) ;
877877
878878 SpawnedSubsystem ( Box :: pin ( async move {
@@ -925,8 +925,8 @@ mod tests {
925925
926926 let ( overseer, mut handler) = Overseer :: new (
927927 vec ! [ first_block] ,
928- Box :: new ( TestSubsystem5 ( tx_5) ) ,
929- Box :: new ( TestSubsystem6 ( tx_6) ) ,
928+ TestSubsystem5 ( tx_5) ,
929+ TestSubsystem6 ( tx_6) ,
930930 spawner,
931931 ) . unwrap ( ) ;
932932
@@ -1010,8 +1010,8 @@ mod tests {
10101010 // start with two forks of different height.
10111011 let ( overseer, mut handler) = Overseer :: new (
10121012 vec ! [ first_block, second_block] ,
1013- Box :: new ( TestSubsystem5 ( tx_5) ) ,
1014- Box :: new ( TestSubsystem6 ( tx_6) ) ,
1013+ TestSubsystem5 ( tx_5) ,
1014+ TestSubsystem6 ( tx_6) ,
10151015 spawner,
10161016 ) . unwrap ( ) ;
10171017
0 commit comments