One Level Up
Top Level
src/event/ngx_event_mutex.c - nginx-1.7.10
Functions defined
Source code
- #include <ngx_config.h>
- #include <ngx_core.h>
- #include <ngx_event.h>
- ngx_int_t ngx_event_mutex_timedlock(ngx_event_mutex_t *m, ngx_msec_t timer,
- ngx_event_t *ev)
- {
- ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
- "lock event mutex %p lock:%XD", m, m->lock);
- if (m->lock) {
- if (m->events == NULL) {
- m->events = ev;
- } else {
- m->last->next = ev;
- }
- m->last = ev;
- ev->next = NULL;
- #if (NGX_THREADS0)
- ev->light = 1;
- #endif
- ngx_add_timer(ev, timer);
- return NGX_AGAIN;
- }
- m->lock = 1;
- return NGX_OK;
- }
- ngx_int_t ngx_event_mutex_unlock(ngx_event_mutex_t *m, ngx_log_t *log)
- {
- ngx_event_t *ev;
- if (m->lock == 0) {
- ngx_log_error(NGX_LOG_ALERT, log, 0,
- "tring to unlock the free event mutex %p", m);
- return NGX_ERROR;
- }
- ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
- "unlock event mutex %p, next event: %p", m, m->events);
- m->lock = 0;
- if (m->events) {
- ev = m->events;
- m->events = ev->next;
- ev->next = ngx_posted_events;
- ngx_posted_events = ev;
- }
- return NGX_OK;
- }
One Level Up
Top Level