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