diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-02-01 18:22:15 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2006-02-01 18:22:15 +0000 |
commit | 9e58019dc287493e02543d614c975cc14295a71e (patch) | |
tree | 328bccfba6e86794eafc546a7cb7ec8aff007b7f /src/event/ngx_event.c | |
parent | e8038c0d1a044f2046d5f7adeb1586d17a5bd81a (diff) | |
download | nginx-release-0.3.24.tar.gz nginx-release-0.3.24.zip |
nginx-0.3.24-RELEASE importrelease-0.3.24
*) Workaround: for bug in FreeBSD kqueue.
*) Bugfix: now a response generated by the "post_action" directive is
not transferred to a client.
*) Bugfix: the memory leaks were occurring if many log files were used.
*) Bugfix: the first "proxy_redirect" directive was working inside one
location.
*) Bugfix: on 64-bit platforms segmentation fault may occurred on start
if the many names were used in the "server_name" directives; the bug
had appeared in 0.3.18.
Diffstat (limited to 'src/event/ngx_event.c')
-rw-r--r-- | src/event/ngx_event.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index 672eac2ba..f3b19a790 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -414,11 +414,12 @@ static ngx_int_t ngx_event_module_init(ngx_cycle_t *cycle) { void ***cf; + u_char *shared; + size_t size; ngx_event_conf_t *ecf; ngx_core_conf_t *ccf; + ngx_shm_t shm; #if !(NGX_WIN32) - char *shared; - size_t size; ngx_int_t limit; struct rlimit rlmt; #endif @@ -461,6 +462,8 @@ ngx_event_module_init(ngx_cycle_t *cycle) } } +#endif /* !(NGX_WIN32) */ + if (ccf->master == 0 || ngx_accept_mutex_ptr) { return NGX_OK; @@ -483,11 +486,15 @@ ngx_event_module_init(ngx_cycle_t *cycle) #endif - shared = ngx_create_shared_memory(size, cycle->log); - if (shared == NULL) { + shm.size = size; + shm.log = cycle->log; + + if (ngx_shm_alloc(&shm) != NGX_OK) { return NGX_ERROR; } + shared = shm.addr; + ngx_accept_mutex_ptr = (ngx_atomic_t *) shared; ngx_connection_counter = (ngx_atomic_t *) (shared + 1 * 128); @@ -508,8 +515,6 @@ ngx_event_module_init(ngx_cycle_t *cycle) "counter: %p, %d", ngx_connection_counter, *ngx_connection_counter); -#endif /* !(NGX_WIN32) */ - return NGX_OK; } |