From 19adafdc21997ce5c2e25ed8bb11b660fc8a3230 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 1 Jun 2005 14:55:45 +0000 Subject: [PATCH] * thread.h (List_remove): Revert most of 2005-05-30 change. --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/thread.h | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index a7f8fd2c7..f02f760f6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2005-06-01 Christopher Faylor + + * thread.h (List_remove): Revert most of 2005-05-30 change. + 2005-06-01 Christopher Faylor * cygwin.sc: Don't output .reloc or .rsrc sections. Clean up stuff diff --git a/winsup/cygwin/thread.h b/winsup/cygwin/thread.h index e0535033b..8bd8b2557 100644 --- a/winsup/cygwin/thread.h +++ b/winsup/cygwin/thread.h @@ -143,9 +143,7 @@ List_remove (fast_mutex &mx, list_node *&head, list_node const *node) mx.lock (); if (head) { - if (head == node) - head = head->next; - else + if (InterlockedCompareExchangePointer (&head, node->next, node) != node) { list_node *cur = head;