mirror of
https://github.com/nginx/nginx.git
synced 2025-07-30 10:06:16 +08:00
Core: added the ngx_rbtree_data() macro.
This commit is contained in:
parent
a407583ef1
commit
8b92710728
@ -47,6 +47,9 @@ struct ngx_rbtree_s {
|
|||||||
(tree)->sentinel = s; \
|
(tree)->sentinel = s; \
|
||||||
(tree)->insert = i
|
(tree)->insert = i
|
||||||
|
|
||||||
|
#define ngx_rbtree_data(node, type, link) \
|
||||||
|
(type *) ((u_char *) (node) - offsetof(type, link))
|
||||||
|
|
||||||
|
|
||||||
void ngx_rbtree_insert(ngx_rbtree_t *tree, ngx_rbtree_node_t *node);
|
void ngx_rbtree_insert(ngx_rbtree_t *tree, ngx_rbtree_node_t *node);
|
||||||
void ngx_rbtree_delete(ngx_rbtree_t *tree, ngx_rbtree_node_t *node);
|
void ngx_rbtree_delete(ngx_rbtree_t *tree, ngx_rbtree_node_t *node);
|
||||||
|
@ -51,9 +51,7 @@ typedef struct {
|
|||||||
} ngx_resolver_an_t;
|
} ngx_resolver_an_t;
|
||||||
|
|
||||||
|
|
||||||
#define ngx_resolver_node(n) \
|
#define ngx_resolver_node(n) ngx_rbtree_data(n, ngx_resolver_node_t, node)
|
||||||
(ngx_resolver_node_t *) \
|
|
||||||
((u_char *) (n) - offsetof(ngx_resolver_node_t, node))
|
|
||||||
|
|
||||||
|
|
||||||
static ngx_int_t ngx_udp_connect(ngx_resolver_connection_t *rec);
|
static ngx_int_t ngx_udp_connect(ngx_resolver_connection_t *rec);
|
||||||
|
@ -73,7 +73,7 @@ ngx_event_expire_timers(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer));
|
ev = ngx_rbtree_data(node, ngx_event_t, timer);
|
||||||
|
|
||||||
ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
|
ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
|
||||||
"event timer del: %d: %M",
|
"event timer del: %d: %M",
|
||||||
@ -113,7 +113,7 @@ ngx_event_no_timers_left(void)
|
|||||||
node;
|
node;
|
||||||
node = ngx_rbtree_next(&ngx_event_timer_rbtree, node))
|
node = ngx_rbtree_next(&ngx_event_timer_rbtree, node))
|
||||||
{
|
{
|
||||||
ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer));
|
ev = ngx_rbtree_data(node, ngx_event_t, timer);
|
||||||
|
|
||||||
if (!ev->cancelable) {
|
if (!ev->cancelable) {
|
||||||
return NGX_AGAIN;
|
return NGX_AGAIN;
|
||||||
|
Loading…
Reference in New Issue
Block a user