void startListen(Socket::ptr listen_socket, boost::barrier* barrier){ listen_socket->listen(); if(barrier) barrier->wait(); while(conn_num--) { //accept will switch the contex to epoll fiber Socket::ptr socket = listen_socket->accept(); Scheduler::getThis()->schedule(boost::bind(&TCPServer::handleConnect, this, socket)); } listen_socket->shutdown(); }