Mercurial > hg > nginx
diff src/os/win32/ngx_win32_init.c @ 2720:b3b8c66bd520
support attaching to an existent Win32 shared memory
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 18 Apr 2009 19:27:28 +0000 |
parents | 0b592a68aade |
children | d43d73277c5c |
line wrap: on
line diff
--- a/src/os/win32/ngx_win32_init.c +++ b/src/os/win32/ngx_win32_init.c @@ -17,6 +17,7 @@ ngx_uint_t ngx_inherited_nonblocking = ngx_uint_t ngx_tcp_nodelay_and_tcp_nopush; ngx_fd_t ngx_stderr_fileno; +char ngx_unique[NGX_INT32_LEN + 1]; ngx_os_io_t ngx_os_io = { @@ -60,6 +61,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log) DWORD bytes; SOCKET s; WSADATA wsd; + ngx_err_t err; ngx_uint_t n; SYSTEM_INFO si; @@ -205,6 +207,23 @@ ngx_int_t ngx_os_init(ngx_log_t *log) ngx_close_socket_n " failed"); } + if (GetEnvironmentVariable("nginx_unique", ngx_unique, NGX_INT32_LEN + 1) + != 0) + { + ngx_process = NGX_PROCESS_WORKER; + + } else { + err = ngx_errno; + + if (err != ERROR_ENVVAR_NOT_FOUND) { + ngx_log_error(NGX_LOG_EMERG, log, err, + "GetEnvironmentVariable(\"nginx_unique\") failed"); + return NGX_ERROR; + } + + ngx_sprintf((u_char *) ngx_unique, "%P%Z", ngx_pid); + } + return NGX_OK; }