mirror of
https://github.com/fafhrd91/actix-net
synced 2024-11-27 20:12:58 +01:00
fix accept timeout and worker graceful shutdown (#412)
This commit is contained in:
parent
81ba7cafaa
commit
161d1ee94b
@ -127,7 +127,7 @@ impl Accept {
|
|||||||
let mut events = mio::Events::with_capacity(256);
|
let mut events = mio::Events::with_capacity(256);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
if let Err(e) = self.poll.poll(&mut events, None) {
|
if let Err(e) = self.poll.poll(&mut events, self.timeout) {
|
||||||
match e.kind() {
|
match e.kind() {
|
||||||
io::ErrorKind::Interrupted => {}
|
io::ErrorKind::Interrupted => {}
|
||||||
_ => panic!("Poll error: {}", e),
|
_ => panic!("Poll error: {}", e),
|
||||||
|
@ -552,6 +552,14 @@ impl Future for ServerWorker {
|
|||||||
self.poll(cx)
|
self.poll(cx)
|
||||||
}
|
}
|
||||||
WorkerState::Shutdown(ref mut shutdown) => {
|
WorkerState::Shutdown(ref mut shutdown) => {
|
||||||
|
// drop all pending connections in rx channel.
|
||||||
|
while let Poll::Ready(Some(conn)) = Pin::new(&mut this.rx).poll_recv(cx) {
|
||||||
|
// WorkerCounterGuard is needed as Accept thread has incremented counter.
|
||||||
|
// It's guard's job to decrement the counter together with drop of Conn.
|
||||||
|
let guard = this.counter.guard();
|
||||||
|
drop((conn, guard));
|
||||||
|
}
|
||||||
|
|
||||||
// wait for 1 second
|
// wait for 1 second
|
||||||
ready!(shutdown.timer.as_mut().poll(cx));
|
ready!(shutdown.timer.as_mut().poll(cx));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user