Mercurial > hg > nginx
view src/event/ngx_event_busy_lock.h @ 5129:96ee76fda991
Misc: switch to single export operation in "zip" target.
While exporting parts of the tree might be better in some cases, it
is awfully slow overseas, and also requires unlocking ssh key multiple
times. Exporting the whole repo and removing directories not needed for
zip is faster here.
It is also a required step before we can switch to Mercurial.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 22 Mar 2013 15:14:07 +0000 |
parents | d620f497c50f |
children | 457ec43dd8d5 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_EVENT_BUSY_LOCK_H_INCLUDED_ #define _NGX_EVENT_BUSY_LOCK_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> typedef struct ngx_event_busy_lock_ctx_s ngx_event_busy_lock_ctx_t; struct ngx_event_busy_lock_ctx_s { ngx_event_t *event; ngx_event_handler_pt handler; void *data; ngx_msec_t timer; unsigned locked:1; unsigned waiting:1; unsigned cache_updated:1; char *md5; ngx_int_t slot; ngx_event_busy_lock_ctx_t *next; }; typedef struct { u_char *md5_mask; char *md5; ngx_uint_t cacheable; ngx_uint_t busy; ngx_uint_t max_busy; ngx_uint_t waiting; ngx_uint_t max_waiting; ngx_event_busy_lock_ctx_t *events; ngx_event_busy_lock_ctx_t *last; #if (NGX_THREADS) ngx_mutex_t *mutex; #endif } ngx_event_busy_lock_t; ngx_int_t ngx_event_busy_lock(ngx_event_busy_lock_t *bl, ngx_event_busy_lock_ctx_t *ctx); ngx_int_t ngx_event_busy_lock_cacheable(ngx_event_busy_lock_t *bl, ngx_event_busy_lock_ctx_t *ctx); void ngx_event_busy_unlock(ngx_event_busy_lock_t *bl, ngx_event_busy_lock_ctx_t *ctx); void ngx_event_busy_lock_cancel(ngx_event_busy_lock_t *bl, ngx_event_busy_lock_ctx_t *ctx); #endif /* _NGX_EVENT_BUSY_LOCK_H_INCLUDED_ */