Update and clean Tomato RAF files
[tomato.git] / release / src / router / nginx / src / http / ngx_http_busy_lock.h
blobc676382f29d3e1b35db9562c3076b7b0f0ed474a
2 /*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) Nginx, Inc.
5 */
8 #ifndef _NGX_HTTP_BUSY_LOCK_H_INCLUDED_
9 #define _NGX_HTTP_BUSY_LOCK_H_INCLUDED_
12 #include <ngx_config.h>
13 #include <ngx_core.h>
14 #include <ngx_event.h>
15 #include <ngx_http.h>
18 typedef struct {
19 u_char *md5_mask;
20 char *md5;
21 int cacheable;
23 int busy;
24 int max_busy;
26 int waiting;
27 int max_waiting;
29 time_t timeout;
31 ngx_event_mutex_t *mutex;
32 } ngx_http_busy_lock_t;
35 typedef struct {
36 time_t time;
37 ngx_event_t *event;
38 void (*event_handler)(ngx_event_t *ev);
39 u_char *md5;
40 int slot;
41 } ngx_http_busy_lock_ctx_t;
44 int ngx_http_busy_lock(ngx_http_busy_lock_t *bl, ngx_http_busy_lock_ctx_t *bc);
45 int ngx_http_busy_lock_cacheable(ngx_http_busy_lock_t *bl,
46 ngx_http_busy_lock_ctx_t *bc, int lock);
47 void ngx_http_busy_unlock(ngx_http_busy_lock_t *bl,
48 ngx_http_busy_lock_ctx_t *bc);
50 char *ngx_http_set_busy_lock_slot(ngx_conf_t *cf, ngx_command_t *cmd,
51 void *conf);
54 #endif /* _NGX_HTTP_BUSY_LOCK_H_INCLUDED_ */