]> git.kaiwu.me - nginx.git/commit
Merge of r4619: accept moderation on EMFILE/ENFILE.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 4 Jun 2012 11:10:36 +0000 (11:10 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 4 Jun 2012 11:10:36 +0000 (11:10 +0000)
commit9732c655154b182497fb47fa47fbba69ffd25897
tree2539b5c4b8cb248d9212579cc511a218f44fd929
parent69d94a9c6deae87f75e4bce4fe12b92a6a0e2a27
Merge of r4619: accept moderation on EMFILE/ENFILE.

In case of EMFILE/ENFILE returned from accept() we disable accept events,
and (in case of no accept mutex used) arm timer to re-enable them later.
With accept mutex we just drop it, and rely on normal accept mutex handling
to re-enable accept events once it's acquired again.

As we now handle errors in question, logging level was changed to "crit"
(instead of "alert" used for unknown errors).

Note: the code might call ngx_enable_accept_events() multiple times if
there are many listen sockets.  The ngx_enable_accept_events() function was
modified to check if connection is already active (via c->read->active) and
skip it then, thus making multiple calls safe.
src/event/ngx_event_accept.c
src/os/unix/ngx_errno.h
src/os/win32/ngx_errno.h