7 /* dlink are Mem-pooled */
11 dlink_list ClientActiveRequests
;
13 MemAllocator
*dlink_node_pool
= NULL
;
18 if (dlink_node_pool
== NULL
)
19 dlink_node_pool
= memPoolCreate("Dlink list nodes", sizeof(dlink_node
));
21 /* where should we call delete dlink_node_pool;dlink_node_pool = NULL; */
22 return (dlink_node
*)dlink_node_pool
->alloc();
25 /** The node needs to be unlinked FIRST */
27 dlinkNodeDelete(dlink_node
* m
)
32 dlink_node_pool
->freeOne(m
);
36 dlinkAdd(void *data
, dlink_node
* m
, dlink_list
* list
)
47 if (list
->tail
== NULL
)
52 dlinkAddAfter(void *data
, dlink_node
* m
, dlink_node
* n
, dlink_list
* list
)
61 assert(list
->tail
== n
);
69 dlinkAddTail(void *data
, dlink_node
* m
, dlink_list
* list
)
80 if (list
->head
== NULL
)
85 dlinkDelete(dlink_node
* m
, dlink_list
* list
)
88 m
->next
->prev
= m
->prev
;
91 m
->prev
->next
= m
->next
;
99 m
->next
= m
->prev
= NULL
;