aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-02-01 18:22:15 +0000
committerIgor Sysoev <igor@sysoev.ru>2006-02-01 18:22:15 +0000
commit9e58019dc287493e02543d614c975cc14295a71e (patch)
tree328bccfba6e86794eafc546a7cb7ec8aff007b7f /src/event/ngx_event.c
parente8038c0d1a044f2046d5f7adeb1586d17a5bd81a (diff)
downloadnginx-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.c17
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;
}