@@ -342,6 +342,7 @@ impl<C: Configurator, P: WorkerProcessing, S: ServicesTransport> WorkerProcess<C
342342 processor : PhantomData :: < ( C , P , S ) > :: default ( ) ,
343343 services_sender : service_request_tx,
344344 services_reciever : service_response_rx,
345+ timeout : self . timeout . clone ( ) ,
345346 } ,
346347 & [ title] ,
347348 & envs,
@@ -365,6 +366,7 @@ pub struct WorkerProcessArgs<C: Configurator, P: WorkerProcessing, S: ServicesTr
365366 processor : PhantomData < ( C , P , S ) > ,
366367 services_sender : IpcSender < S :: TransportRequest > ,
367368 services_reciever : IpcReceiver < S :: TransportResponse > ,
369+ timeout : Duration ,
368370}
369371
370372pub fn worker_main < C , P , S > ( a : WorkerProcessArgs < C , P , S > ) -> i32
@@ -373,8 +375,13 @@ where
373375 P : WorkerProcessing < Config = C :: Config > ,
374376 S : ServicesTransport < Request = C :: ServicesRequest , Response = C :: ServicesResponse > ,
375377{
376- let ( rx, tx, services_sender, services_reciever) =
377- ( a. args , a. results , a. services_sender , a. services_reciever ) ;
378+ let ( rx, tx, services_sender, services_reciever, timeout) = (
379+ a. args ,
380+ a. results ,
381+ a. services_sender ,
382+ a. services_reciever ,
383+ a. timeout ,
384+ ) ;
378385 let mut tokio_builder = Builder :: new_multi_thread ( ) ;
379386 tokio_builder. enable_all ( ) ;
380387 tokio_builder. thread_name ( "cubestore-worker" ) ;
@@ -386,7 +393,7 @@ where
386393 let runtime = tokio_builder. build ( ) . unwrap ( ) ;
387394 worker_setup ( & runtime) ;
388395 runtime. block_on ( async move {
389- let services_client = S :: connect ( services_sender, services_reciever) ;
396+ let services_client = S :: connect ( services_sender, services_reciever, timeout ) ;
390397 let config = match C :: configure ( services_client) . await {
391398 Err ( e) => {
392399 error ! (
0 commit comments