comparison src/event/ngx_event_accept.c @ 160:73e8476f9142 NGINX_0_3_27

nginx 0.3.27 *) Change: the "variables_hash_max_size" and "variables_hash_bucket_size" directives. *) Feature: the $body_bytes_sent variable can be used not only in the "log_format" directive. *) Feature: the $ssl_protocol and $ssl_cipher variables. *) Feature: the cache line size detection for widespread CPUs at start time. *) Feature: now the "accept_mutex" directive is supported using fcntl(2) on platforms different from i386, amd64, sparc64, and ppc. *) Feature: the "lock_file" directive and the --with-lock-path=PATH autoconfiguration directive. *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive then the requests with the body was not transferred.
author Igor Sysoev <http://sysoev.ru>
date Wed, 08 Feb 2006 00:00:00 +0300
parents 82d695e3d662
children b922c231a392
comparison
equal deleted inserted replaced
159:25c27e983933 160:73e8476f9142
257 257
258 258
259 ngx_int_t 259 ngx_int_t
260 ngx_trylock_accept_mutex(ngx_cycle_t *cycle) 260 ngx_trylock_accept_mutex(ngx_cycle_t *cycle)
261 { 261 {
262 if (*ngx_accept_mutex == 0 262 if (ngx_shmtx_trylock(&ngx_accept_mutex)) {
263 && ngx_atomic_cmp_set(ngx_accept_mutex, 0, ngx_pid)) 263
264 {
265 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 264 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
266 "accept mutex locked"); 265 "accept mutex locked");
267 266
268 if (ngx_accept_mutex_held && !(ngx_event_flags & NGX_USE_RTSIG_EVENT)) 267 if (ngx_accept_mutex_held && !(ngx_event_flags & NGX_USE_RTSIG_EVENT))
269 { 268 {
270 return NGX_OK; 269 return NGX_OK;
271 } 270 }
272 271
273 if (ngx_enable_accept_events(cycle) == NGX_ERROR) { 272 if (ngx_enable_accept_events(cycle) == NGX_ERROR) {
274 *ngx_accept_mutex = 0; 273 ngx_shmtx_unlock(&ngx_accept_mutex);
275 return NGX_ERROR; 274 return NGX_ERROR;
276 } 275 }
277 276
278 ngx_accept_mutex_held = 1; 277 ngx_accept_mutex_held = 1;
279 278