[PATCH] Process events posted by ngx_close_idle_connections() immediately

Maxim Dounin mdounin at mdounin.ru
Wed Nov 23 00:19:28 UTC 2022


Hello!

On Fri, Nov 18, 2022 at 07:33:02PM +0400, Roman Arutyunyan wrote:

> # HG changeset patch
> # User Roman Arutyunyan <arut at nginx.com>
> # Date 1668785498 -14400
> #      Fri Nov 18 19:31:38 2022 +0400
> # Node ID c185d439cbaecfe8ec5deb0fadd1a6e9a769990b
> # Parent  17d6a537fb1bb587e4de22961bf5be5f0c648fa8
> Process events posted by ngx_close_idle_connections() immediately.
> 
> Previously, if an event was posted by a read event handler, called by
> ngx_close_idle_connections(), that event was not processed until the next
> event loop iteration, which could happen after a timeout.
> 
> diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
> --- a/src/os/unix/ngx_process_cycle.c
> +++ b/src/os/unix/ngx_process_cycle.c
> @@ -736,6 +736,7 @@ ngx_worker_process_cycle(ngx_cycle_t *cy
>                  ngx_set_shutdown_timer(cycle);
>                  ngx_close_listening_sockets(cycle);
>                  ngx_close_idle_connections(cycle);
> +                ngx_event_process_posted(cycle, &ngx_posted_events);
>              }
>          }
>  
> diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c
> --- a/src/os/win32/ngx_process_cycle.c
> +++ b/src/os/win32/ngx_process_cycle.c
> @@ -804,6 +804,7 @@ ngx_worker_thread(void *data)
>                  ngx_set_shutdown_timer(cycle);
>                  ngx_close_listening_sockets(cycle);
>                  ngx_close_idle_connections(cycle);
> +                ngx_event_process_posted(cycle, &ngx_posted_events);
>              }
>          }
>  
> 

Looks good.

-- 
Maxim Dounin
http://mdounin.ru/



More information about the nginx-devel mailing list