summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/connections.c5
-rw-r--r--src/fdevent_impl.c5
2 files changed, 5 insertions, 5 deletions
diff --git a/src/connections.c b/src/connections.c
index 7c849bf1..51afa665 100644
--- a/src/connections.c
+++ b/src/connections.c
@@ -88,9 +88,7 @@ static void connection_close(connection *con) {
fdevent_fdnode_event_del(srv->ev, con->fdn);
fdevent_unregister(srv->ev, con->fdn);
con->fdn = NULL;
- if (0 == fdio_close_socket(con->fd))
- --srv->cur_fds;
- else
+ if (0 != fdio_close_socket(con->fd))
log_serror(r->conf.errh, __FILE__, __LINE__,
"(warning) close: %d", con->fd);
@@ -100,6 +98,7 @@ static void connection_close(connection *con) {
}
con->fd = -1;
+ --srv->cur_fds;
connection_del(srv, con);
}
diff --git a/src/fdevent_impl.c b/src/fdevent_impl.c
index a3a1f66b..bd409a85 100644
--- a/src/fdevent_impl.c
+++ b/src/fdevent_impl.c
@@ -282,14 +282,15 @@ fdevent_sched_run (fdevents * const ev)
{
for (fdnode *fdn = ev->pendclose; fdn; ) {
int fd = fdn->fd;
+ /*(inlined fdio_close_socket() for tighter loop; worthwhile?)*/
#ifdef _WIN32
if (0 != closesocket(fd)) /* WSAPoll() valid only on SOCKET */
#else
if (0 != close(fd))
#endif
log_serror(ev->errh, __FILE__, __LINE__, "close() %d", fd);
- else
- --(*ev->cur_fds);
+
+ --(*ev->cur_fds);
fdnode * const fdn_tmp = fdn;
fdn = (fdnode *)fdn->ctx; /* next */