1
0
mirror of https://github.com/fafhrd91/actix-net synced 2024-11-27 16:52:58 +01:00

sync wait for service factories to be ready

This commit is contained in:
Rob Ede 2021-11-04 23:26:56 +00:00
parent 7d98247cb0
commit 15279eaf3d
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933

View File

@ -296,7 +296,8 @@ impl ServerWorker {
// get actix system context if it is set
let sys = System::try_current();
// TODO: wait for server startup with sync channel
// service factories initialization channel
let (factory_tx, factory_rx) = std::sync::mpsc::sync_channel(1);
std::thread::Builder::new()
.name(format!("actix-server worker {}", idx))
@ -350,6 +351,8 @@ impl ServerWorker {
}
};
factory_tx.send(()).unwrap();
// a third spawn to make sure ServerWorker runs as non boxed future.
spawn(ServerWorker {
rx,
@ -369,6 +372,9 @@ impl ServerWorker {
})
.expect("worker thread error/panic");
// wait for service factories initialization
factory_rx.recv().unwrap();
Ok(handle_pair(idx, tx1, tx2, counter))
}