summaryrefslogtreecommitdiffhomepage
path: root/src/event/modules/ngx_rtsig_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event/modules/ngx_rtsig_module.c')
-rw-r--r--src/event/modules/ngx_rtsig_module.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/event/modules/ngx_rtsig_module.c b/src/event/modules/ngx_rtsig_module.c
index 22243f52c..e5f632a2a 100644
--- a/src/event/modules/ngx_rtsig_module.c
+++ b/src/event/modules/ngx_rtsig_module.c
@@ -221,15 +221,21 @@ int ngx_rtsig_process_events(ngx_cycle_t *cycle)
expire = 1;
if (ngx_accept_mutex) {
- if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) {
- return NGX_ERROR;
- }
+ if (ngx_accept_disabled > 0) {
+ ngx_accept_disabled--;
+
+ } else {
+ if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) {
+ return NGX_ERROR;
+ }
- if (ngx_accept_mutex_held == 0
- && (timer == NGX_TIMER_INFINITE || timer > ngx_accept_mutex_delay))
- {
- timer = ngx_accept_mutex_delay;
- expire = 0;
+ if (ngx_accept_mutex_held == 0
+ && (timer == NGX_TIMER_INFINITE
+ || timer > ngx_accept_mutex_delay))
+ {
+ timer = ngx_accept_mutex_delay;
+ expire = 0;
+ }
}
}
@@ -299,7 +305,9 @@ int ngx_rtsig_process_events(ngx_cycle_t *cycle)
c->read->event_handler(c->read);
} else if (c->read->accept) {
- c->read->event_handler(c->read);
+ if (ngx_accept_disabled > 0) {
+ c->read->event_handler(c->read);
+ }
} else {
if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
@@ -367,7 +375,6 @@ int ngx_rtsig_process_events(ngx_cycle_t *cycle)
return NGX_ERROR;
}
-
ngx_accept_mutex_unlock();
if (expire && delta) {