about summary refs log tree commit homepage
path: root/queue_epoll.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-06-21 03:34:38 +0000
committerEric Wong <normalperson@yhbt.net>2013-06-25 22:07:48 +0000
commitc1ced9e91ddc647a40f343d20d43cf13fe88eeba (patch)
tree2466104743bc55350f4ac5bb8911bb1322c3ce00 /queue_epoll.c
parente12e70b6bd242cb3fea74d1df8b7b44e0a9f7f26 (diff)
downloadcmogstored-c1ced9e91ddc647a40f343d20d43cf13fe88eeba.tar.gz
Simply releasing the descriptor triggering ENOSPC/ENOMEM errors from
epoll_ctl and kevent is not good enough, as those descriptors may
have other descriptors (e.g. files to be served) hanging off of them.
Diffstat (limited to 'queue_epoll.c')
-rw-r--r--queue_epoll.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/queue_epoll.c b/queue_epoll.c
index bc7b513..c704ebb 100644
--- a/queue_epoll.c
+++ b/queue_epoll.c
@@ -158,7 +158,7 @@ epoll_ctl_error(struct mog_queue *q, struct mog_fd *mfd)
         case ENOMEM:
         case ENOSPC:
                 syslog(LOG_ERR, "epoll_ctl: %m, dropping file descriptor");
-                mog_fd_put(mfd);
+                mog_queue_drop(mfd);
                 return;
         default:
                 syslog(LOG_ERR, "unhandled epoll_ctl() error: %m");