4 /* dlink are Mem-pooled */
7 dlink_list ClientActiveRequests
;
9 MemAllocator
*dlink_node_pool
= NULL
;
14 if (dlink_node_pool
== NULL
)
15 dlink_node_pool
= memPoolCreate("Dlink list nodes", sizeof(dlink_node
));
17 /* where should we call delete dlink_node_pool;dlink_node_pool = NULL; */
18 return (dlink_node
*)dlink_node_pool
->alloc();
21 /** The node needs to be unlinked FIRST */
23 dlinkNodeDelete(dlink_node
* m
)
28 dlink_node_pool
->freeOne(m
);
32 dlinkAdd(void *data
, dlink_node
* m
, dlink_list
* list
)
43 if (list
->tail
== NULL
)
48 dlinkAddAfter(void *data
, dlink_node
* m
, dlink_node
* n
, dlink_list
* list
)
57 assert(list
->tail
== n
);
65 dlinkAddTail(void *data
, dlink_node
* m
, dlink_list
* list
)
76 if (list
->head
== NULL
)
81 dlinkDelete(dlink_node
* m
, dlink_list
* list
)
84 m
->next
->prev
= m
->prev
;
87 m
->prev
->next
= m
->next
;
95 m
->next
= m
->prev
= NULL
;