# HG changeset patch # User Igor Sysoev # Date 1238424393 0 # Node ID c9da3e4dc706699080decd622ce3d754b61b9e63 # Parent b0cfe5f66e8d224c4add4366beeba23e9f9b295f ngx_process_tray() diff -r b0cfe5f66e8d -r c9da3e4dc706 src/os/win32/ngx_process_cycle.c --- a/src/os/win32/ngx_process_cycle.c Mon Mar 30 14:23:07 2009 +0000 +++ b/src/os/win32/ngx_process_cycle.c Mon Mar 30 14:46:33 2009 +0000 @@ -11,6 +11,7 @@ static ngx_thread_value_t __stdcall ngx_worker_thread_cycle(void *data); +static void ngx_process_tray(ngx_cycle_t *cycle); static long __stdcall ngx_window_procedure(HWND window, u_int message, u_int wparam, long lparam); @@ -57,16 +58,9 @@ void ngx_single_process_cycle(ngx_cycle_t *cycle) { - int rc; ngx_int_t i; ngx_err_t err; ngx_tid_t tid; - MSG message; - HWND window; - HMENU menu; - HICON icon,tray; - WNDCLASS wc; - HINSTANCE instance; ngx_core_conf_t *ccf; ngx_init_temp_number(); @@ -80,11 +74,10 @@ } } - ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); - if (ngx_init_threads(ngx_threads_n, - ccf->thread_stack_size, cycle) == NGX_ERROR) + if (ngx_init_threads(ngx_threads_n, ccf->thread_stack_size, cycle) + != NGX_OK) { /* fatal */ exit(2); @@ -98,6 +91,44 @@ exit(2); } + if (ngx_create_thread(&tid, ngx_worker_thread_cycle, NULL, cycle->log) + != 0) + { + /* fatal */ + exit(2); + } + + ngx_process_tray(cycle); +} + + +static ngx_thread_value_t __stdcall +ngx_worker_thread_cycle(void *data) +{ + ngx_cycle_t *cycle; + + cycle = (ngx_cycle_t *) ngx_cycle; + + while (!ngx_quit) { + ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle"); + + ngx_process_events_and_timers(cycle); + } + + return 0; +} + + +static void +ngx_process_tray(ngx_cycle_t *cycle) +{ + int rc; + MSG message; + HWND window; + HMENU menu; + HICON icon, tray; + WNDCLASS wc; + HINSTANCE instance; instance = GetModuleHandle(NULL); @@ -152,7 +183,6 @@ exit(2); } - window = CreateWindow("nginx", "nginx", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, @@ -175,14 +205,6 @@ exit(2); } - - if (ngx_create_thread(&tid, ngx_worker_thread_cycle, NULL, cycle->log) != 0) - { - /* fatal */ - exit(2); - } - - for ( ;; ) { rc = GetMessage(&message, NULL, 0, 0); @@ -202,23 +224,6 @@ } -static ngx_thread_value_t __stdcall -ngx_worker_thread_cycle(void *data) -{ - ngx_cycle_t *cycle; - - cycle = (ngx_cycle_t *) ngx_cycle; - - while (!ngx_quit) { - ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle"); - - ngx_process_events_and_timers(cycle); - } - - return 0; -} - - static long __stdcall ngx_window_procedure(HWND window, u_int message, u_int wparam, long lparam) { @@ -241,7 +246,8 @@ } if (TrackPopupMenu(ngx_menu, TPM_RIGHTBUTTON, - mouse.x, mouse.y, 0, window, NULL) == 0) + mouse.x, mouse.y, 0, window, NULL) + == 0) { ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_errno, "TrackPopupMenu() failed"); @@ -254,7 +260,7 @@ case WM_COMMAND: if (wparam == NGX_WM_ABOUT) { ngx_message_box("nginx", MB_OK, 0, - NGINX_VER CRLF "(C) 2002-2005 Igor Sysoev"); + NGINX_VER CRLF "(C) 2002-2009 Igor Sysoev"); return 0; }