ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: патч для nginx/win32



Hello!

On Thu, Mar 28, 2013 at 06:03:05PM +0600, Илья Шипицин wrote:

> Добрый день!
> 
> поправил 0 --> TRUE в WaitForMultipleObjects, чтобы дождаться
> завершения всех потомков, патч:
> 
> --- src/os/win32/ngx_process_cycle.c.orig       2013-03-27
> 09:53:48.000000000 +0600
> +++ src/os/win32/ngx_process_cycle.c    2013-03-28 17:58:49.000000000 +0600
> @@ -303,7 +303,10 @@
>  ngx_console_handler(u_long type)
>  {
>      char  *msg;
> -
> +       ngx_int_t   n;
> +       u_long      nev, timeout, ev;
> +       HANDLE      events[MAXIMUM_WAIT_OBJECTS];
> +
>      switch (type) {
> 
>      case CTRL_C_EVENT:
> @@ -337,6 +340,18 @@
>                        "SetEvent(\"%s\") failed", ngx_stop_event_name);
>      }
> 
> +       nev = 0;
> +    for (n = 0; n < ngx_last_process; n++) {
> +        if (ngx_processes[n].handle) {
> +            events[nev++] = ngx_processes[n].handle;
> +        }
> +    }
> +
> +       if(nev != 0){
> +               timeout = INFINITE;
> +               ev = WaitForMultipleObjects(nev, events, TRUE, timeout);
> +       }
> +
>      return 1;
>  }

Насколько я понимаю, так может быть больно, если основной тред 
мастера таки успеет закрыть event'ы раньше, чем мы их 
попытаемся использовать.

Я бы строил нормальную синхронизацию именно с завершением 
основного треда мастера (а тот, в свою очередь, пусть дожидается 
всех остальных - как он, собственно, и сейчас делает).

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.