comparison src/event/ngx_event_posted.c @ 371:780e93985b93

nginx-0.0.7-2004-06-28-20:05:02 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 28 Jun 2004 16:05:02 +0000
parents 54f76b0b8dca
children c9fdfccebc49
comparison
equal deleted inserted replaced
370:54f76b0b8dca 371:780e93985b93
6 6
7 ngx_thread_volatile ngx_event_t *ngx_posted_events; 7 ngx_thread_volatile ngx_event_t *ngx_posted_events;
8 8
9 #if (NGX_THREADS) 9 #if (NGX_THREADS)
10 ngx_mutex_t *ngx_posted_events_mutex; 10 ngx_mutex_t *ngx_posted_events_mutex;
11 ngx_cv_t *ngx_posted_events_cv; 11 ngx_cond_t *ngx_posted_events_cv;
12 #endif 12 #endif
13 13
14 14
15 void ngx_event_process_posted(ngx_cycle_t *cycle) 15 void ngx_event_process_posted(ngx_cycle_t *cycle)
16 { 16 {
74 if (ev == NULL) { 74 if (ev == NULL) {
75 ngx_mutex_unlock(ngx_posted_events_mutex); 75 ngx_mutex_unlock(ngx_posted_events_mutex);
76 return NGX_OK; 76 return NGX_OK;
77 } 77 }
78 78
79 if (ngx_trylock(ev->lock) == NGX_BUSY) { 79 if (ngx_trylock(ev->lock) == 0) {
80 80
81 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 81 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
82 "posted event " PTR_FMT " is busy", ev); 82 "posted event " PTR_FMT " is busy", ev);
83 83
84 ep = &ev->next; 84 ep = &ev->next;
110 ev->posted = 0; 110 ev->posted = 0;
111 } 111 }
112 112
113 ev->event_handler(ev); 113 ev->event_handler(ev);
114 114
115 *(ev->lock) = 0; 115 ngx_unlock(ev->lock);
116 116
117 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { 117 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
118 return NGX_ERROR; 118 return NGX_ERROR;
119 } 119 }
120 120