Mercurial > hg > nginx
comparison src/event/ngx_event_accept.c @ 302:1526e7686b20
nginx-0.0.3-2004-04-01-10:21:13 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 01 Apr 2004 06:21:13 +0000 |
parents | 744965ec6275 |
children | 00c5660d2707 |
comparison
equal
deleted
inserted
replaced
301:744965ec6275 | 302:1526e7686b20 |
---|---|
12 | 12 |
13 | 13 |
14 static size_t ngx_accept_log_error(void *data, char *buf, size_t len); | 14 static size_t ngx_accept_log_error(void *data, char *buf, size_t len); |
15 | 15 |
16 | 16 |
17 ngx_atomic_t *ngx_accept_mutex_ptr; | |
17 ngx_atomic_t *ngx_accept_mutex; | 18 ngx_atomic_t *ngx_accept_mutex; |
18 ngx_uint_t ngx_accept_token; | 19 ngx_uint_t ngx_accept_mutex_held; |
19 | 20 |
20 | 21 |
21 void ngx_event_accept(ngx_event_t *ev) | 22 void ngx_event_accept(ngx_event_t *ev) |
22 { | 23 { |
23 ngx_uint_t instance, rinstance, winstance, accepted; | 24 ngx_uint_t instance, rinstance, winstance, accepted; |
309 if (*ngx_accept_mutex == 0 && ngx_atomic_cmp_set(ngx_accept_mutex, 0, 1)) { | 310 if (*ngx_accept_mutex == 0 && ngx_atomic_cmp_set(ngx_accept_mutex, 0, 1)) { |
310 | 311 |
311 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | 312 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, |
312 "accept mutex locked"); | 313 "accept mutex locked"); |
313 | 314 |
314 if (!ngx_accept_token) { | 315 if (!ngx_accept_mutex_held) { |
315 if (ngx_enable_accept_events(cycle) == NGX_ERROR) { | 316 if (ngx_enable_accept_events(cycle) == NGX_ERROR) { |
317 *ngx_accept_mutex = 0; | |
316 return NGX_ERROR; | 318 return NGX_ERROR; |
317 } | 319 } |
318 | 320 |
319 ngx_accept_token = 1; | 321 ngx_accept_mutex_held = 1; |
320 } | 322 } |
321 | 323 |
322 return NGX_OK; | 324 return NGX_OK; |
323 } | 325 } |
324 | 326 |
325 if (ngx_accept_token) { | 327 if (ngx_accept_mutex_held) { |
326 if (ngx_disable_accept_events(cycle) == NGX_ERROR) { | 328 if (ngx_disable_accept_events(cycle) == NGX_ERROR) { |
327 return NGX_ERROR; | 329 return NGX_ERROR; |
328 } | 330 } |
329 | 331 |
330 ngx_accept_token = 0; | 332 ngx_accept_mutex_held = 0; |
331 } | 333 } |
332 | 334 |
333 return NGX_OK; | 335 return NGX_OK; |
334 } | 336 } |
335 | 337 |