~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Nginx/event/ngx_event_mutex.c

Version: ~ [ nginx-0.6.26 ] ~ [ nginx-0.5.35 ] ~ [ nginx-0.5.20 ] ~ [ nginx-0.5.19 ] ~

  1 
  2 /*
  3  * Copyright (C) Igor Sysoev
  4  */
  5 
  6 
  7 #include <ngx_config.h>
  8 #include <ngx_core.h>
  9 #include <ngx_event.h>
 10 
 11 
 12 ngx_int_t ngx_event_mutex_timedlock(ngx_event_mutex_t *m, ngx_msec_t timer,
 13                                     ngx_event_t *ev)
 14 {
 15     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
 16                    "lock event mutex %p lock:%XD", m, m->lock);
 17 
 18     if (m->lock) {
 19 
 20         if (m->events == NULL) {
 21             m->events = ev;
 22 
 23         } else {
 24             m->last->next = ev;
 25         }
 26 
 27         m->last = ev;
 28         ev->next = NULL;
 29 
 30 #if (NGX_THREADS0)
 31         ev->light = 1;
 32 #endif
 33 
 34         ngx_add_timer(ev, timer);
 35 
 36         return NGX_AGAIN;
 37     }
 38 
 39     m->lock = 1;
 40 
 41     return NGX_OK;
 42 }
 43 
 44 
 45 ngx_int_t ngx_event_mutex_unlock(ngx_event_mutex_t *m, ngx_log_t *log)
 46 {
 47     ngx_event_t  *ev;
 48 
 49     if (m->lock == 0) {
 50         ngx_log_error(NGX_LOG_ALERT, log, 0,
 51                       "tring to unlock the free event mutex %p", m);
 52         return NGX_ERROR;
 53     }
 54 
 55     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
 56                    "unlock event mutex %p, next event: %p", m, m->events);
 57 
 58     m->lock = 0;
 59 
 60     if (m->events) {
 61         ev = m->events;
 62         m->events = ev->next;
 63 
 64         ev->next = (ngx_event_t *) ngx_posted_events;
 65         ngx_posted_events = ev;
 66     }
 67 
 68     return NGX_OK;
 69 }
 70 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.