Mercurial > hg > nginx
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 |