aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_errno.h
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2012-05-11 13:33:06 +0000
committerMaxim Dounin <mdounin@mdounin.ru>2012-05-11 13:33:06 +0000
commit0e3b423dc6c6653d600f4bf1687f0653be04a830 (patch)
tree3b9f1e9cae0b9d73489bb1e046f6999dac1e445c /src/os/unix/ngx_errno.h
parent74d939974d430a2c2e71b0134114d2a7b04dcc20 (diff)
downloadnginx-0e3b423dc6c6653d600f4bf1687f0653be04a830.tar.gz
nginx-0e3b423dc6c6653d600f4bf1687f0653be04a830.zip
Accept moderation in case of 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.
Diffstat (limited to 'src/os/unix/ngx_errno.h')
-rw-r--r--src/os/unix/ngx_errno.h2
1 files changed, 2 insertions, 0 deletions
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