Mercurial > hg > nginx
changeset 7052:70e65bf8dfd7
Resolver: cancelable resend timer event.
It is safe because re-sending still works during graceful shutdown as
long as resolving takes place (and resolve tasks set their own timeouts
that are not cancelable).
Also, the new ctx->cancelable flag can be set to make resolve task's
timeout event cancelable.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 04 Jul 2017 18:50:41 +0300 |
parents | 137c5be7df09 |
children | 7f480434c7f2 |
files | src/core/ngx_resolver.c src/core/ngx_resolver.h |
diffstat | 2 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_resolver.c Tue Jul 04 18:46:30 2017 +0300 +++ b/src/core/ngx_resolver.c Tue Jul 04 18:50:41 2017 +0300 @@ -191,6 +191,7 @@ r->event->handler = ngx_resolver_resend_handler; r->event->data = r; r->event->log = &cf->cycle->new_log; + r->event->cancelable = 1; r->ident = -1; r->resend_timeout = 5; @@ -4008,6 +4009,7 @@ ctx->event->handler = ngx_resolver_timeout_handler; ctx->event->data = ctx; ctx->event->log = r->log; + ctx->event->cancelable = ctx->cancelable; ctx->ident = -1; ngx_add_timer(ctx->event, ctx->timeout);