comparison src/event/ngx_event_posted.c @ 379:73688d5d7fc3

nginx-0.0.7-2004-07-06-20:12:16 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 06 Jul 2004 16:12:16 +0000
parents 41437e4fd9b4
children 5ce6561246a5
comparison
equal deleted inserted replaced
378:b7d3625c9336 379:73688d5d7fc3
71 } 71 }
72 72
73 73
74 ngx_int_t ngx_event_thread_process_posted(ngx_cycle_t *cycle) 74 ngx_int_t ngx_event_thread_process_posted(ngx_cycle_t *cycle)
75 { 75 {
76 ngx_tls_t *tls;
76 ngx_event_t *ev; 77 ngx_event_t *ev;
78
79 tls = ngx_thread_get_tls();
77 80
78 for ( ;; ) { 81 for ( ;; ) {
79 82
80 ev = (ngx_event_t *) ngx_posted_events; 83 ev = (ngx_event_t *) ngx_posted_events;
81 84
119 #endif 122 #endif
120 ev->posted_available = 0; 123 ev->posted_available = 0;
121 124
122 ngx_mutex_unlock(ngx_posted_events_mutex); 125 ngx_mutex_unlock(ngx_posted_events_mutex);
123 126
127 tls->event = ev;
128
124 ev->event_handler(ev); 129 ev->event_handler(ev);
125 130
126 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { 131 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
127 return NGX_ERROR; 132 return NGX_ERROR;
128 } 133 }
129 134
130 if (ev->locked) { 135 if (ev->locked) {
131 ngx_unlock(ev->lock); 136 ngx_unlock(ev->lock);
132 } 137 }
138
139 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
140 "posted event " PTR_FMT " is done", ev);
133 141
134 break; 142 break;
135 } 143 }
136 } 144 }
137 } 145 }