comparison src/event/ngx_event_accept.c @ 719:f30b1a75fd3b

Solaris 10 event ports support
author Igor Sysoev <igor@sysoev.ru>
date Tue, 26 Sep 2006 12:20:12 +0000
parents 698033350558
children 2a92804f4109
comparison
equal deleted inserted replaced
718:d488926182ea 719:f30b1a75fd3b
54 54
55 if (s == -1) { 55 if (s == -1) {
56 err = ngx_socket_errno; 56 err = ngx_socket_errno;
57 57
58 if (err == NGX_EAGAIN) { 58 if (err == NGX_EAGAIN) {
59 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ev->log, err,
60 "accept() not ready");
59 return; 61 return;
60 } 62 }
61 63
62 ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_ERR: 64 ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_ERR:
63 NGX_LOG_ALERT, 65 NGX_LOG_ALERT,
262 if (ngx_shmtx_trylock(&ngx_accept_mutex)) { 264 if (ngx_shmtx_trylock(&ngx_accept_mutex)) {
263 265
264 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 266 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
265 "accept mutex locked"); 267 "accept mutex locked");
266 268
267 if (ngx_accept_mutex_held && !(ngx_event_flags & NGX_USE_RTSIG_EVENT)) { 269 if (ngx_accept_mutex_held
270 && ngx_accept_events == 0
271 && !(ngx_event_flags & NGX_USE_RTSIG_EVENT))
272 {
268 return NGX_OK; 273 return NGX_OK;
269 } 274 }
270 275
271 if (ngx_enable_accept_events(cycle) == NGX_ERROR) { 276 if (ngx_enable_accept_events(cycle) == NGX_ERROR) {
272 ngx_shmtx_unlock(&ngx_accept_mutex); 277 ngx_shmtx_unlock(&ngx_accept_mutex);
273 return NGX_ERROR; 278 return NGX_ERROR;
274 } 279 }
275 280
281 ngx_accept_events = 0;
276 ngx_accept_mutex_held = 1; 282 ngx_accept_mutex_held = 1;
277 283
278 return NGX_OK; 284 return NGX_OK;
279 } 285 }
286
287 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
288 "accept mutex lock failed: %ui", ngx_accept_mutex_held);
280 289
281 if (ngx_accept_mutex_held) { 290 if (ngx_accept_mutex_held) {
282 if (ngx_disable_accept_events(cycle) == NGX_ERROR) { 291 if (ngx_disable_accept_events(cycle) == NGX_ERROR) {
283 return NGX_ERROR; 292 return NGX_ERROR;
284 } 293 }