7 /* dlink are Mem-pooled */
13 dlink_list ClientActiveRequests
;
15 MemAllocator
*dlink_node_pool
= NULL
;
20 if (dlink_node_pool
== NULL
)
21 dlink_node_pool
= memPoolCreate("Dlink list nodes", sizeof(dlink_node
));
23 /* where should we call delete dlink_node_pool;dlink_node_pool = NULL; */
24 return (dlink_node
*)dlink_node_pool
->alloc();
27 /** The node needs to be unlinked FIRST */
29 dlinkNodeDelete(dlink_node
* m
)
34 dlink_node_pool
->freeOne(m
);
38 dlinkAdd(void *data
, dlink_node
* m
, dlink_list
* list
)
49 if (list
->tail
== NULL
)
54 dlinkAddAfter(void *data
, dlink_node
* m
, dlink_node
* n
, dlink_list
* list
)
63 assert(list
->tail
== n
);
71 dlinkAddTail(void *data
, dlink_node
* m
, dlink_list
* list
)
82 if (list
->head
== NULL
)
87 dlinkDelete(dlink_node
* m
, dlink_list
* list
)
90 m
->next
->prev
= m
->prev
;
93 m
->prev
->next
= m
->next
;
101 m
->next
= m
->prev
= NULL
;