Welcome! Log In Create A New Profile

Advanced

nginx timer in log module

September 16, 2016 08:28PM
Hi

As the following codes.


buffer->event->handler = ngx_http_log_flush_handler;


static void
ngx_http_log_flush_handler(ngx_event_t *ev)
{
...
if (ev->timedout) {
ngx_http_log_flush(ev->data, ev->log);
return;
}
...
}


static void
ngx_http_log_flush(ngx_open_file_t *file, ngx_log_t *log)
{
...
if (buffer->event && buffer->event->timer_set) {
ngx_del_timer(buffer->event);
}
}


I find there are two functions explicitly call event handler.
1. ngx_event_cancel_timers happened as long as worker process quits.
2. ngx_event_expire_timers in ngx_process_events_and_timers.

And they remove timer from timer rbtree, then set timer_set zero.
After that they call event->handler.

So why we call ngx_del_timer in ngx_http_log_flush again?

Thanks.

B.R~
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

nginx timer in log module

karton 676 September 16, 2016 08:28PM

Re: nginx timer in log module

karton 357 September 16, 2016 09:44PM

Re: nginx timer in log module

Maxim Dounin 283 September 16, 2016 10:50PM

Re: nginx timer in log module

karton 357 September 17, 2016 02:44AM

Re: nginx timer in log module

Maxim Dounin 300 September 17, 2016 03:08AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 148
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready