6 /* dlink are Mem-pooled */
12 dlink_list ClientActiveRequests
;
14 MemAllocator
*dlink_node_pool
= NULL
;
19 if (dlink_node_pool
== NULL
)
20 dlink_node_pool
= memPoolCreate("Dlink list nodes", sizeof(dlink_node
));
22 /* where should we call delete dlink_node_pool;dlink_node_pool = NULL; */
23 return (dlink_node
*)dlink_node_pool
->alloc();
26 /** The node needs to be unlinked FIRST */
28 dlinkNodeDelete(dlink_node
* m
)
33 dlink_node_pool
->free(m
);
37 dlinkAdd(void *data
, dlink_node
* m
, dlink_list
* list
)
48 if (list
->tail
== NULL
)
53 dlinkAddAfter(void *data
, dlink_node
* m
, dlink_node
* n
, dlink_list
* list
)
62 assert(list
->tail
== n
);
70 dlinkAddTail(void *data
, dlink_node
* m
, dlink_list
* list
)
81 if (list
->head
== NULL
)
86 dlinkDelete(dlink_node
* m
, dlink_list
* list
)
89 m
->next
->prev
= m
->prev
;
92 m
->prev
->next
= m
->next
;
100 m
->next
= m
->prev
= NULL
;