aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event_pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event/ngx_event_pipe.c')
-rw-r--r--src/event/ngx_event_pipe.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c
index ffb7929dd..09b6f6a6e 100644
--- a/src/event/ngx_event_pipe.c
+++ b/src/event/ngx_event_pipe.c
@@ -60,8 +60,11 @@ ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
return NGX_ABORT;
}
- if (rev->active) {
+ if (rev->active && !rev->ready) {
ngx_add_timer(rev, p->read_timeout);
+
+ } else if (rev->timer_set) {
+ ngx_del_timer(rev);
}
}
@@ -71,8 +74,13 @@ ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
return NGX_ABORT;
}
- if (wev->active && !wev->ready && !wev->delayed) {
- ngx_add_timer(wev, p->send_timeout);
+ if (!wev->delayed) {
+ if (wev->active && !wev->ready) {
+ ngx_add_timer(wev, p->send_timeout);
+
+ } else if (wev->timer_set) {
+ ngx_del_timer(wev);
+ }
}
}