fn disconnect()

in src/worker.rs [189:200]


    fn disconnect(&mut self, token: Token) -> Result<(), std::io::Error> {
        OPEN.decrement();
        let session = get_session_mut!(self, token)?;
        let _ = session.deregister(&self.poll);
        let peer_addr = session.peer_addr();
        let ssl_session = session.ssl_session();
        session.close();
        if let Ok(addr) = peer_addr {
            self.connect_queue.push_back((addr, ssl_session));
        }
        Ok(())
    }