Mercurial > hg > nginx
comparison src/event/modules/ngx_kqueue_module.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 |
---|---|
373 if (ngx_accept_mutex) { | 373 if (ngx_accept_mutex) { |
374 if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) { | 374 if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) { |
375 return NGX_ERROR; | 375 return NGX_ERROR; |
376 } | 376 } |
377 | 377 |
378 #if 1 | 378 #if 0 |
379 if (ngx_accept_token == 0 && timer == 0) { | 379 if (ngx_accept_mutex_held == 0 && timer == 0) { |
380 /* STUB */ timer = 500; | 380 /* STUB */ timer = 500; |
381 } | 381 } |
382 #endif | 382 #endif |
383 } | 383 } |
384 | 384 |
414 ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; | 414 ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; |
415 | 415 |
416 if (err) { | 416 if (err) { |
417 ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, | 417 ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, |
418 cycle->log, err, "kevent() failed"); | 418 cycle->log, err, "kevent() failed"); |
419 | 419 ngx_accept_mutex_unlock(); |
420 if (ngx_accept_token) { | |
421 *ngx_accept_mutex = 0; | |
422 } | |
423 | |
424 return NGX_ERROR; | 420 return NGX_ERROR; |
425 } | 421 } |
426 | 422 |
427 if (timer) { | 423 if (timer) { |
428 delta = ngx_elapsed_msec - delta; | 424 delta = ngx_elapsed_msec - delta; |
432 | 428 |
433 } else { | 429 } else { |
434 if (events == 0) { | 430 if (events == 0) { |
435 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, | 431 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, |
436 "kevent() returned no events without timeout"); | 432 "kevent() returned no events without timeout"); |
437 | 433 ngx_accept_mutex_unlock(); |
438 if (ngx_accept_token) { | |
439 *ngx_accept_mutex = 0; | |
440 } | |
441 | |
442 return NGX_ERROR; | 434 return NGX_ERROR; |
443 } | 435 } |
444 } | 436 } |
445 | 437 |
446 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { | 438 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { |
447 | 439 ngx_accept_mutex_unlock(); |
448 if (ngx_accept_token) { | |
449 *ngx_accept_mutex = 0; | |
450 } | |
451 | |
452 return NGX_ERROR; | 440 return NGX_ERROR; |
453 } | 441 } |
454 | 442 |
455 for (i = 0; i < events; i++) { | 443 for (i = 0; i < events; i++) { |
456 | 444 |
530 | 518 |
531 | 519 |
532 #if 0 | 520 #if 0 |
533 if (ngx_threaded || ngx_accept_token) { | 521 if (ngx_threaded || ngx_accept_token) { |
534 #endif | 522 #endif |
535 if (ngx_accept_token) { | 523 if (ngx_accept_mutex_held) { |
536 | 524 |
537 if (ev->accept) { | 525 if (ev->accept) { |
538 ngx_mutex_unlock(ngx_posted_events_mutex); | 526 ngx_mutex_unlock(ngx_posted_events_mutex); |
539 | 527 |
540 ev->event_handler(ev); | 528 ev->event_handler(ev); |
541 | 529 |
542 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { | 530 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { |
543 | 531 ngx_accept_mutex_unlock(); |
544 if (ngx_accept_token) { | |
545 *ngx_accept_mutex = 0; | |
546 } | |
547 | |
548 return NGX_ERROR; | 532 return NGX_ERROR; |
549 } | 533 } |
550 | 534 |
551 } else { | 535 } else { |
552 ev->next = ngx_posted_events; | 536 ev->next = ngx_posted_events; |
559 ev->event_handler(ev); | 543 ev->event_handler(ev); |
560 } | 544 } |
561 | 545 |
562 ngx_mutex_unlock(ngx_posted_events_mutex); | 546 ngx_mutex_unlock(ngx_posted_events_mutex); |
563 | 547 |
564 if (ngx_accept_token) { | 548 ngx_accept_mutex_unlock(); |
565 *ngx_accept_mutex = 0; | |
566 } | |
567 | 549 |
568 if (timer && delta) { | 550 if (timer && delta) { |
569 ngx_event_expire_timers((ngx_msec_t) delta); | 551 ngx_event_expire_timers((ngx_msec_t) delta); |
570 } | 552 } |
571 | 553 |