diff --git a/a8/tcplistener.cc b/a8/tcplistener.cc index 21bd2e4..50e4d2a 100644 --- a/a8/tcplistener.cc +++ b/a8/tcplistener.cc @@ -334,10 +334,12 @@ namespace a8 a8::TcpSession* session = (a8::TcpSession*)events[i].data.ptr; if (events[i].events & EPOLLIN) { session->DoClientRecv(); - } else if (events[i].events & EPOLLOUT) { + } + if (events[i].events & EPOLLOUT) { session->DoClientSend(); - } else if (events[i].events & EPOLLRDHUP || - events[i].events & EPOLLHUP) { + } + if (events[i].events & EPOLLRDHUP || + events[i].events & EPOLLHUP) { FreeClient(session); } }