OSDN Git Service

* thread.h (List_remove): Revert most of 2005-05-30 change.
authorcgf <cgf>
Wed, 1 Jun 2005 14:55:44 +0000 (14:55 +0000)
committercgf <cgf>
Wed, 1 Jun 2005 14:55:44 +0000 (14:55 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/thread.h

index a7f8fd2..f02f760 100644 (file)
@@ -1,5 +1,9 @@
 2005-06-01  Christopher Faylor  <cgf@timesys.com>
 
+       * thread.h (List_remove): Revert most of 2005-05-30 change.
+
+2005-06-01  Christopher Faylor  <cgf@timesys.com>
+
        * cygwin.sc: Don't output .reloc or .rsrc sections.  Clean up stuff
        around .cygheap and use a workaround to get things working with newer
        (broken?) binutils.
index e053503..8bd8b25 100644 (file)
@@ -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;