From 9732c655154b182497fb47fa47fbba69ffd25897 Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Mon, 4 Jun 2012 11:10:36 +0000 Subject: 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/os/unix/ngx_errno.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/os/unix/ngx_errno.h') diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h index 78af40bfe..2912dea04 100644 --- a/src/os/unix/ngx_errno.h +++ b/src/os/unix/ngx_errno.h @@ -29,6 +29,8 @@ typedef int ngx_err_t; #define NGX_ENOTDIR ENOTDIR #define NGX_EISDIR EISDIR #define NGX_EINVAL EINVAL +#define NGX_ENFILE ENFILE +#define NGX_EMFILE EMFILE #define NGX_ENOSPC ENOSPC #define NGX_EPIPE EPIPE #define NGX_EINPROGRESS EINPROGRESS -- cgit