Mercurial > hg > nginx
comparison src/core/ngx_rbtree.h @ 853:a7c8cbb4c55f
rbtree insert procedure
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 16 Nov 2006 15:34:52 +0000 |
parents | 4390fcad6628 |
children | 4924b71d77f6 |
comparison
equal
deleted
inserted
replaced
852:629b5e4f8931 | 853:a7c8cbb4c55f |
---|---|
21 struct ngx_rbtree_node_s { | 21 struct ngx_rbtree_node_s { |
22 ngx_rbtree_key_t key; | 22 ngx_rbtree_key_t key; |
23 ngx_rbtree_node_t *left; | 23 ngx_rbtree_node_t *left; |
24 ngx_rbtree_node_t *right; | 24 ngx_rbtree_node_t *right; |
25 ngx_rbtree_node_t *parent; | 25 ngx_rbtree_node_t *parent; |
26 char color; | 26 u_char color; |
27 u_char data; | |
27 }; | 28 }; |
28 | 29 |
29 | 30 |
30 typedef struct ngx_rbtree_s ngx_rbtree_t; | 31 typedef struct ngx_rbtree_s ngx_rbtree_t; |
31 | 32 |
32 typedef ngx_rbtree_node_t *(*ngx_rbtree_insert_pt) (ngx_rbtree_node_t *root, | 33 typedef void (*ngx_rbtree_insert_pt) (ngx_rbtree_node_t *root, |
33 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); | 34 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); |
34 | 35 |
35 struct ngx_rbtree_s { | 36 struct ngx_rbtree_s { |
36 ngx_rbtree_node_t *root; | 37 ngx_rbtree_node_t *root; |
37 ngx_rbtree_node_t *sentinel; | 38 ngx_rbtree_node_t *sentinel; |
38 /* ngx_rbtree_insert_pt insert; */ | 39 ngx_rbtree_insert_pt insert; |
39 }; | 40 }; |
40 | 41 |
41 | 42 |
42 void ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree, | 43 void ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree, |
43 ngx_rbtree_node_t *node); | 44 ngx_rbtree_node_t *node); |
44 void ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree, | 45 void ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree, |
45 ngx_rbtree_node_t *node); | 46 ngx_rbtree_node_t *node); |
47 void ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *root, | |
48 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); | |
46 | 49 |
47 | 50 |
48 static ngx_inline ngx_rbtree_node_t * | 51 static ngx_inline ngx_rbtree_node_t * |
49 ngx_rbtree_min(ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel) | 52 ngx_rbtree_min(ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel) |
50 { | 53 { |