ikilobyte / netman

高性能轻量级TCP、UDP框架、支持TLS、路由、中间件、WebSocket、事件循环(epoll),百万连接(C1000K)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

小白有些不懂,为啥acceptor这里得到是eventfd的事件后要把acceptor关闭呀

CrazyCollin opened this issue · comments

if eventFd == a.eventfd {
	_, _ = unix.Read(eventFd, a.eventbuff)
	a.Close()
	return nil
}

就是这个地方,小白有些没看懂

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)
}

原来是这样啊,感谢大佬