mirror of https://github.com/fafhrd91/actix-net
let worker start block longer.
This commit is contained in:
parent
73fc384514
commit
aaeaa0aebd
|
@ -189,27 +189,25 @@ impl Accept {
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
match self.poll.poll(&mut events, self.timeout) {
|
match self.poll.poll(&mut events, self.timeout) {
|
||||||
Ok(_) => {
|
Ok(_) => {}
|
||||||
for event in events.iter() {
|
Err(e) if e.kind() == io::ErrorKind::Interrupted => {}
|
||||||
let token = event.token();
|
Err(e) => panic!("Poll error: {}", e),
|
||||||
match token {
|
}
|
||||||
WAKER_TOKEN => {
|
|
||||||
let should_return = self.handle_waker(&mut sockets);
|
for event in events.iter() {
|
||||||
if should_return {
|
let token = event.token();
|
||||||
return;
|
match token {
|
||||||
}
|
WAKER_TOKEN => {
|
||||||
}
|
let should_return = self.handle_waker(&mut sockets);
|
||||||
_ => {
|
if should_return {
|
||||||
let token = usize::from(token);
|
return;
|
||||||
self.accept(&mut sockets, token)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_ => {
|
||||||
|
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.
|
// check for timeout and re-register sockets.
|
||||||
|
|
|
@ -12,6 +12,7 @@ use std::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use actix_rt::{
|
use actix_rt::{
|
||||||
|
task::yield_now,
|
||||||
time::{sleep, Instant, Sleep},
|
time::{sleep, Instant, Sleep},
|
||||||
System,
|
System,
|
||||||
};
|
};
|
||||||
|
@ -304,8 +305,6 @@ impl ServerWorker {
|
||||||
|
|
||||||
match res {
|
match res {
|
||||||
Ok(services) => {
|
Ok(services) => {
|
||||||
f(None);
|
|
||||||
|
|
||||||
let worker = ServerWorker {
|
let worker = ServerWorker {
|
||||||
rx,
|
rx,
|
||||||
rx2,
|
rx2,
|
||||||
|
@ -320,6 +319,8 @@ impl ServerWorker {
|
||||||
let worker = local.spawn_local(worker);
|
let worker = local.spawn_local(worker);
|
||||||
|
|
||||||
handle.block_on(local.run_until(async {
|
handle.block_on(local.run_until(async {
|
||||||
|
yield_now().await;
|
||||||
|
f(None);
|
||||||
let _ = worker.await;
|
let _ = worker.await;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -344,8 +345,6 @@ impl ServerWorker {
|
||||||
|
|
||||||
match res {
|
match res {
|
||||||
Ok((services, rt)) => {
|
Ok((services, rt)) => {
|
||||||
f(None);
|
|
||||||
|
|
||||||
let worker = ServerWorker {
|
let worker = ServerWorker {
|
||||||
rx,
|
rx,
|
||||||
rx2,
|
rx2,
|
||||||
|
@ -360,6 +359,8 @@ impl ServerWorker {
|
||||||
let handle = local.spawn_local(worker);
|
let handle = local.spawn_local(worker);
|
||||||
|
|
||||||
local.block_on(&rt, async {
|
local.block_on(&rt, async {
|
||||||
|
yield_now().await;
|
||||||
|
f(None);
|
||||||
let _ = handle.await;
|
let _ = handle.await;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,6 @@ fn test_bind() {
|
||||||
});
|
});
|
||||||
let handle = rx.recv().unwrap();
|
let handle = rx.recv().unwrap();
|
||||||
|
|
||||||
thread::sleep(Duration::from_millis(500));
|
|
||||||
assert!(net::TcpStream::connect(addr).is_ok());
|
assert!(net::TcpStream::connect(addr).is_ok());
|
||||||
let _ = handle.stop(true);
|
let _ = handle.stop(true);
|
||||||
let _ = h.join().unwrap();
|
let _ = h.join().unwrap();
|
||||||
|
|
Loading…
Reference in New Issue