int SyncReactor::callback() { int res; while(!_queue.empty()) { IEvent * ev = _queue.pop(); this->post(ev); } while(true) { /* if(_events <= 0) Log::WARN("Sync Reactor has no event"); continue; */ res = epollDispatch(); if(res < 0) return res; } return 0; }
int main(int argc, char **argv) { if(argc < 2) { printf("usage : %s <port>\n", argv[0]); exit(1); } int port = atoi(argv[1]); epoller *ep = epollCreate(); echoServerContext *server = createTcpServer(ep, port); if(epollAddEvent(ep, server->serverfd, EPOLLIN, acceptTcpHandler, NULL) != 0) oom("creating file event"); epollDispatch(ep); epollDelete(ep); printf("Bye!\n"); return 0; }