Merge branch 'master' into master

This commit is contained in:
Rob Ede 2021-11-04 23:53:30 +00:00 committed by GitHub
commit a73891c4cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 3 deletions

View File

@ -2,7 +2,9 @@
## Unreleased - 2021-xx-xx
* Add `Arbiter::try_current` for situations where thread may or may not have Arbiter context. [#408]
* Start io-uring with `System::new` when feature is enabled. [#395]
[#395]: https://github.com/actix/actix-net/pull/395
[#408]: https://github.com/actix/actix-net/pull/408

View File

@ -296,10 +296,11 @@ 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("eofibef".to_owned())
.name(format!("actix-server worker {}", idx))
.spawn(move || {
// forward existing actix system context
if let Some(sys) = sys {
@ -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))
}

View File

@ -312,7 +312,7 @@ async fn test_service_restart() {
h.join().unwrap().unwrap();
}
#[cfg_attr(not(target_os = "linux"), ignore)]
#[ignore] // non-deterministic on CI
#[actix_rt::test]
async fn worker_restart() {
use actix_service::{Service, ServiceFactory};