From ee519aa34584fbdd3de2703983345a1c59dbf0a7 Mon Sep 17 00:00:00 2001 From: fakeshadow <24548779@qq.com> Date: Wed, 14 Apr 2021 19:15:36 +0800 Subject: [PATCH] remove Accept::new --- actix-server/src/accept.rs | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index 25eda37d..58f6c6be 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -195,23 +195,12 @@ impl Accept { }); } - let accept = Accept::new(poll, waker, handles, srv); - - (accept, sockets) - } - - fn new( - poll: Poll, - waker: WakerQueue, - handles: Vec, - srv: Server, - ) -> Self { let mut avail = Availability::default(); // Assume all handles are avail at construct time. avail.set_available_all(&handles); - Self { + let accept = Accept { poll, waker, handles, @@ -219,7 +208,9 @@ impl Accept { next: 0, avail, backpressure: false, - } + }; + + (accept, sockets) } fn poll_with(&mut self, mut sockets: Slab) { @@ -228,12 +219,8 @@ impl Accept { loop { if let Err(e) = self.poll.poll(&mut events, None) { match e.kind() { - std::io::ErrorKind::Interrupted => { - continue; - } - _ => { - panic!("Poll error: {}", e); - } + std::io::ErrorKind::Interrupted => continue, + _ => panic!("Poll error: {}", e), } } @@ -412,9 +399,9 @@ impl Accept { } } else { while self.avail.available() { - let next = self.next; - let idx = self.handles[next].idx; - if self.handles[next].available() { + let next = self.next(); + let idx = next.idx; + if next.available() { self.avail.set_available(idx, true); match self.send_connection(sockets, conn) { Ok(_) => return, @@ -439,7 +426,7 @@ impl Accept { sockets: &mut Slab, conn: Conn, ) -> Result<(), Conn> { - match self.handles[self.next].send(conn) { + match self.next().send(conn) { Ok(_) => { self.set_next(); Ok(()) @@ -504,6 +491,10 @@ impl Accept { } } + fn next(&self) -> &WorkerHandleAccept { + &self.handles[self.next] + } + /// Set next worker handle that would accept connection. fn set_next(&mut self) { self.next = (self.next + 1) % self.handles.len();