Mercurial > hg > nginx-quic
view src/event/ngx_event_busy_lock.h @ 5885:5a042519bfe7
Upstream: limited next_upstream time and tries when resolving DNS.
When got multiple upstream IP addresses using DNS resolving, the number of
upstreams tries and the maxinum time spent for these tries were not affected.
This patch fixed it.
author | Gu Feng <flygoast@126.com> |
---|---|
date | Mon, 27 Oct 2014 19:52:03 +0800 |
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_ */