小白有些不懂,为啥acceptor这里得到是eventfd的事件后要把acceptor关闭呀
CrazyCollin opened this issue · comments
Lazzzzzzzzzy commented
if eventFd == a.eventfd {
_, _ = unix.Read(eventFd, a.eventbuff)
a.Close()
return nil
}
就是这个地方,小白有些没看懂
Sunny commented
Server提供了一个Stop方法,用来退出Server,而这个event就是用来通知acceptor退出用的
func (s *Server) Stop() {
s.status = stopping
s.connectMgr.ClearAll()
s.eventloop.Stop()
close(s.emitCh)
_ = unix.Close(s.socket.fd)
s.acceptor.Exit()
}
func (a *acceptor) Exit() {
_, _ = unix.Write(a.eventfd, a.eventbuff)
}
Lazzzzzzzzzy commented
原来是这样啊,感谢大佬