let worker start block longer.

This commit is contained in:
fakeshadow 2021-04-28 03:25:52 +08:00
parent 73fc384514
commit aaeaa0aebd
3 changed files with 21 additions and 23 deletions

View File

@ -189,27 +189,25 @@ impl Accept {
loop {
match self.poll.poll(&mut events, self.timeout) {
Ok(_) => {
for event in events.iter() {
let token = event.token();
match token {
WAKER_TOKEN => {
let should_return = self.handle_waker(&mut sockets);
if should_return {
return;
}
}
_ => {
let token = usize::from(token);
self.accept(&mut sockets, token)
}
Ok(_) => {}
Err(e) if e.kind() == io::ErrorKind::Interrupted => {}
Err(e) => panic!("Poll error: {}", e),
}
for event in events.iter() {
let token = event.token();
match token {
WAKER_TOKEN => {
let should_return = self.handle_waker(&mut sockets);
if should_return {
return;
}
}
_ => {
let token = usize::from(token);
self.accept(&mut sockets, token)
}
}
Err(e) => match e.kind() {
std::io::ErrorKind::Interrupted => {}
_ => panic!("Poll error: {}", e),
},
}
// check for timeout and re-register sockets.

View File

@ -12,6 +12,7 @@ use std::{
};
use actix_rt::{
task::yield_now,
time::{sleep, Instant, Sleep},
System,
};
@ -304,8 +305,6 @@ impl ServerWorker {
match res {
Ok(services) => {
f(None);
let worker = ServerWorker {
rx,
rx2,
@ -320,6 +319,8 @@ impl ServerWorker {
let worker = local.spawn_local(worker);
handle.block_on(local.run_until(async {
yield_now().await;
f(None);
let _ = worker.await;
}));
}
@ -344,8 +345,6 @@ impl ServerWorker {
match res {
Ok((services, rt)) => {
f(None);
let worker = ServerWorker {
rx,
rx2,
@ -360,6 +359,8 @@ impl ServerWorker {
let handle = local.spawn_local(worker);
local.block_on(&rt, async {
yield_now().await;
f(None);
let _ = handle.await;
});
}

View File

@ -36,7 +36,6 @@ fn test_bind() {
});
let handle = rx.recv().unwrap();
thread::sleep(Duration::from_millis(500));
assert!(net::TcpStream::connect(addr).is_ok());
let _ = handle.stop(true);
let _ = h.join().unwrap();