Annotation of embedaddon/nginx/src/event/ngx_event_busy_lock.h, revision 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>