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 */