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

Linux Cross Reference
Nginx/event/ngx_event_busy_lock.h

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 #ifndef _NGX_EVENT_BUSY_LOCK_H_INCLUDED_
  8 #define _NGX_EVENT_BUSY_LOCK_H_INCLUDED_
  9 
 10 
 11 #include <ngx_config.h>
 12 #include <ngx_core.h>
 13 #include <ngx_event.h>
 14 
 15 typedef struct ngx_event_busy_lock_ctx_s  ngx_event_busy_lock_ctx_t;
 16 
 17 struct ngx_event_busy_lock_ctx_s {
 18     ngx_event_t                *event;
 19     ngx_event_handler_pt        handler;
 20     void                       *data;
 21     ngx_msec_t                  timer;
 22 
 23     unsigned                    locked:1;
 24     unsigned                    waiting:1;
 25     unsigned                    cache_updated:1;
 26 
 27     char                       *md5;
 28     ngx_int_t                   slot;
 29 
 30     ngx_event_busy_lock_ctx_t  *next;
 31 };
 32 
 33 
 34 typedef struct {
 35     u_char                     *md5_mask;
 36     char                       *md5;
 37     ngx_uint_t                  cacheable;
 38 
 39     ngx_uint_t                  busy;
 40     ngx_uint_t                  max_busy;
 41 
 42     ngx_uint_t                  waiting;
 43     ngx_uint_t                  max_waiting;
 44 
 45     ngx_event_busy_lock_ctx_t  *events;
 46     ngx_event_busy_lock_ctx_t  *last;
 47 
 48 #if (NGX_THREADS)
 49     ngx_mutex_t                *mutex;
 50 #endif
 51 } ngx_event_busy_lock_t;
 52 
 53 
 54 ngx_int_t ngx_event_busy_lock(ngx_event_busy_lock_t *bl,
 55     ngx_event_busy_lock_ctx_t *ctx);
 56 ngx_int_t ngx_event_busy_lock_cacheable(ngx_event_busy_lock_t *bl,
 57     ngx_event_busy_lock_ctx_t *ctx);
 58 void ngx_event_busy_unlock(ngx_event_busy_lock_t *bl,
 59     ngx_event_busy_lock_ctx_t *ctx);
 60 void ngx_event_busy_lock_cancel(ngx_event_busy_lock_t *bl,
 61     ngx_event_busy_lock_ctx_t *ctx);
 62 
 63 
 64 #endif /* _NGX_EVENT_BUSY_LOCK_H_INCLUDED_ */
 65 

~ [ 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.