* thread.h (List_remove): Make node parameter const. Use simple comparison and

assignment rather than InterlockedCompareExchangePointer since access is
already synchronized.
This commit is contained in:
Christopher Faylor
2005-05-30 18:37:41 +00:00
parent ac5e21b028
commit 9885498829
2 changed files with 10 additions and 2 deletions

View File

@@ -136,14 +136,16 @@ List_insert (list_node *&head, list_node *node)
}
template <class list_node> inline void
List_remove (fast_mutex &mx, list_node *&head, list_node *node)
List_remove (fast_mutex &mx, list_node *&head, list_node const *node)
{
if (!node)
return;
mx.lock ();
if (head)
{
if (InterlockedCompareExchangePointer (&head, node->next, node) != node)
if (head == node)
head = head->next;
else
{
list_node *cur = head;