Annotation of embedaddon/nginx/src/event/ngx_event_busy_lock.h, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>