Mercurial > hg > nginx-vendor-0-7
comparison src/event/ngx_event.c @ 22:8b6db3bda591 NGINX_0_1_11
nginx 0.1.11
*) Feature: the worker_priority directive.
*) Change: both tcp_nopush and tcp_nodelay directives affect the
transferred response.
*) Bugfix: nginx did not call initgroups().
Thanks to Andrew Sitnikov and Andrei Nigmatulin.
*) Change: now the ngx_http_autoindex_module shows the file size in the
bytes.
*) Bugfix: the ngx_http_autoindex_module returned the 500 error if the
broken symlink was in a directory.
*) Bugfix: the files bigger than 4G could not be transferred using
sendfile.
*) Bugfix: if the backend was resolved to several backends and there
was an error while the response waiting then process may got caught
in an endless loop.
*) Bugfix: the worker process may exit with the "unknown cycle" message
when the /dev/poll method was used.
*) Bugfix: "close() channel failed" errors.
*) Bugfix: the autodetection of the "nobody" and "nogroup" groups.
*) Bugfix: the send_lowat directive did not work on Linux.
*) Bugfix: the segmentation fault occurred if there was no events
section in configuration.
*) Bugfix: nginx could not be built on OpenBSD.
*) Bugfix: the double slashes in "://" in the URI were converted to
":/".
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Thu, 02 Dec 2004 00:00:00 +0300 |
parents | 6f8b0dc0f8dd |
children | e1ada20fc595 |
comparison
equal
deleted
inserted
replaced
21:4eeb9cfef970 | 22:8b6db3bda591 |
---|---|
172 | 172 |
173 static ngx_int_t ngx_event_module_init(ngx_cycle_t *cycle) | 173 static ngx_int_t ngx_event_module_init(ngx_cycle_t *cycle) |
174 { | 174 { |
175 #if !(NGX_WIN32) | 175 #if !(NGX_WIN32) |
176 | 176 |
177 size_t size; | 177 size_t size; |
178 char *shared; | 178 void ***cf; |
179 ngx_core_conf_t *ccf; | 179 char *shared; |
180 ngx_event_conf_t *ecf; | 180 ngx_core_conf_t *ccf; |
181 ngx_event_conf_t *ecf; | |
182 | |
183 cf = ngx_get_conf(cycle->conf_ctx, ngx_events_module); | |
184 | |
185 if (cf == NULL) { | |
186 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, | |
187 "no \"events\" section in configuration"); | |
188 return NGX_ERROR; | |
189 } | |
190 | |
191 ecf = (*cf)[ngx_event_core_module.ctx_index]; | |
192 | |
193 ngx_log_error(NGX_LOG_INFO, cycle->log, 0, | |
194 "using the \"%s\" event method", ecf->name); | |
195 | |
181 | 196 |
182 ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); | 197 ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); |
183 | 198 |
184 if (ccf->master == 0 || ngx_accept_mutex_ptr) { | 199 if (ccf->master == 0 || ngx_accept_mutex_ptr) { |
185 return NGX_OK; | 200 return NGX_OK; |
186 } | 201 } |
187 | |
188 ecf = ngx_event_get_conf(cycle->conf_ctx, ngx_event_core_module); | |
189 | 202 |
190 | 203 |
191 /* TODO: 128 is cache line size */ | 204 /* TODO: 128 is cache line size */ |
192 | 205 |
193 size = 128 /* ngx_accept_mutex */ | 206 size = 128 /* ngx_accept_mutex */ |