diff --git a/src/kernel/Communicator.cc b/src/kernel/Communicator.cc index 7123c7bd..0855e8c5 100644 --- a/src/kernel/Communicator.cc +++ b/src/kernel/Communicator.cc @@ -1215,6 +1215,7 @@ void *Communicator::accept(const struct sockaddr *addr, socklen_t addrlen, delete target; } + close(sockfd); return NULL; } diff --git a/src/kernel/poller.c b/src/kernel/poller.c index baede535..65a82d0f 100644 --- a/src/kernel/poller.c +++ b/src/kernel/poller.c @@ -535,10 +535,7 @@ static void __poller_handle_listen(struct __poller_node *node, result = node->data.accept(addr, addrlen, sockfd, node->data.context); if (!result) - { - close(sockfd); break; - } res->data = node->data; res->data.result = result;