Mercurial > hg > nginx
diff src/event/ngx_event_posted.c @ 5820:3377f9459e99
Events: removed broken thread support from posted events.
It's mostly dead code. And the idea of thread support for this task has
been deprecated.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Mon, 01 Sep 2014 18:20:03 +0400 |
parents | d620f497c50f |
children | 3f5f0ab59b35 |
line wrap: on
line diff
--- a/src/event/ngx_event_posted.c +++ b/src/event/ngx_event_posted.c @@ -10,23 +10,18 @@ #include <ngx_event.h> -ngx_thread_volatile ngx_event_t *ngx_posted_accept_events; -ngx_thread_volatile ngx_event_t *ngx_posted_events; - -#if (NGX_THREADS) -ngx_mutex_t *ngx_posted_events_mutex; -#endif +ngx_event_t *ngx_posted_accept_events; +ngx_event_t *ngx_posted_events; void -ngx_event_process_posted(ngx_cycle_t *cycle, - ngx_thread_volatile ngx_event_t **posted) +ngx_event_process_posted(ngx_cycle_t *cycle, ngx_event_t **posted) { ngx_event_t *ev; for ( ;; ) { - ev = (ngx_event_t *) *posted; + ev = *posted; ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "posted event %p", ev); @@ -40,134 +35,3 @@ ngx_event_process_posted(ngx_cycle_t *cy ev->handler(ev); } } - - -#if (NGX_THREADS) && !(NGX_WIN32) - -void -ngx_wakeup_worker_thread(ngx_cycle_t *cycle) -{ - ngx_int_t i; -#if 0 - ngx_uint_t busy; - ngx_event_t *ev; - - busy = 1; - - if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { - return; - } - - for (ev = (ngx_event_t *) ngx_posted_events; ev; ev = ev->next) { - if (*(ev->lock) == 0) { - busy = 0; - break; - } - } - - ngx_mutex_unlock(ngx_posted_events_mutex); - - if (busy) { - return; - } -#endif - - for (i = 0; i < ngx_threads_n; i++) { - if (ngx_threads[i].state == NGX_THREAD_FREE) { - ngx_cond_signal(ngx_threads[i].cv); - return; - } - } -} - - -ngx_int_t -ngx_event_thread_process_posted(ngx_cycle_t *cycle) -{ - ngx_event_t *ev; - - for ( ;; ) { - - ev = (ngx_event_t *) ngx_posted_events; - - for ( ;; ) { - - ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, - "posted event %p", ev); - - if (ev == NULL) { - return NGX_OK; - } - - if (ngx_trylock(ev->lock) == 0) { - - ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, - "posted event %p is busy", ev); - - ev = ev->next; - continue; - } - - if (ev->lock != ev->own_lock) { - if (*(ev->own_lock)) { - ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, - "the own lock of the posted event %p is busy", ev); - ngx_unlock(ev->lock); - ev = ev->next; - continue; - } - *(ev->own_lock) = 1; - } - - ngx_delete_posted_event(ev); - - ev->locked = 1; - - ev->ready |= ev->posted_ready; - ev->timedout |= ev->posted_timedout; - ev->pending_eof |= ev->posted_eof; -#if (NGX_HAVE_KQUEUE) - ev->kq_errno |= ev->posted_errno; -#endif - if (ev->posted_available) { - ev->available = ev->posted_available; - } - - ev->posted_ready = 0; - ev->posted_timedout = 0; - ev->posted_eof = 0; -#if (NGX_HAVE_KQUEUE) - ev->posted_errno = 0; -#endif - ev->posted_available = 0; - - ngx_mutex_unlock(ngx_posted_events_mutex); - - ev->handler(ev); - - ngx_mutex_lock(ngx_posted_events_mutex); - - if (ev->locked) { - ngx_unlock(ev->lock); - - if (ev->lock != ev->own_lock) { - ngx_unlock(ev->own_lock); - } - } - - ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, - "posted event %p is done", ev); - - break; - } - } -} - -#else - -void -ngx_wakeup_worker_thread(ngx_cycle_t *cycle) -{ -} - -#endif