in src/core/admin/src/lib.rs [262:297]
fn accept(&mut self) {
ADMIN_SESSION_ACCEPT.increment();
match self
.listener
.accept()
.map(|v| ServerSession::new(Session::from(v), AdminRequestParser::default()))
{
Ok(mut session) => {
let s = self.sessions.vacant_entry();
let interest = session.interest();
if session
.register(self.poll.registry(), Token(s.key()), interest)
.is_ok()
{
ADMIN_SESSION_ACCEPT_OK.increment();
ADMIN_SESSION_CURR.increment();
s.insert(session);
} else {
// failed to register
ADMIN_SESSION_ACCEPT_EX.increment();
}
self.backlog.push_back(LISTENER_TOKEN);
let _ = self.waker.wake();
}
Err(e) => {
if e.kind() != ErrorKind::WouldBlock {
ADMIN_SESSION_ACCEPT_EX.increment();
self.backlog.push_back(LISTENER_TOKEN);
let _ = self.waker.wake();
}
}
}
}