[Glibc-bsd-commits] r4649 - trunk/glibc-ports/kfreebsd/fbtl

Petr Salinger ps-guest at alioth.debian.org
Mon Jul 8 12:48:20 UTC 2013


Author: ps-guest
Date: 2013-06-28 18:08:51 +0000 (Fri, 28 Jun 2013)
New Revision: 4649

Modified:
   trunk/glibc-ports/kfreebsd/fbtl/sem_post.c
   trunk/glibc-ports/kfreebsd/fbtl/sem_timedwait.c
   trunk/glibc-ports/kfreebsd/fbtl/sem_wait.c
Log:
our futex_{,timed_}wait returns error as positive number


Modified: trunk/glibc-ports/kfreebsd/fbtl/sem_post.c
===================================================================
--- trunk/glibc-ports/kfreebsd/fbtl/sem_post.c	2013-06-28 17:33:57 UTC (rev 4648)
+++ trunk/glibc-ports/kfreebsd/fbtl/sem_post.c	2013-06-28 18:08:51 UTC (rev 4649)
@@ -48,9 +48,9 @@
     {
       int err = lll_futex_wake (&isem->value, 1,
 				isem->private ^ FUTEX_PRIVATE_FLAG);
-      if (__builtin_expect (err, 0) < 0)
+      if (__builtin_expect (err, 0) != 0)
 	{
-	  __set_errno (-err);
+	  __set_errno (err);
 	  return -1;
 	}
     }
@@ -69,9 +69,9 @@
   (void) atomic_increment_val (futex);
   /* We always have to assume it is a shared semaphore.  */
   int err = lll_futex_wake (futex, 1, LLL_SHARED);
-  if (__builtin_expect (err, 0) < 0)
+  if (__builtin_expect (err, 0) != 0)
     {
-      __set_errno (-err);
+      __set_errno (err);
       return -1;
     }
   return 0;

Modified: trunk/glibc-ports/kfreebsd/fbtl/sem_timedwait.c
===================================================================
--- trunk/glibc-ports/kfreebsd/fbtl/sem_timedwait.c	2013-06-28 17:33:57 UTC (rev 4648)
+++ trunk/glibc-ports/kfreebsd/fbtl/sem_timedwait.c	2013-06-28 18:08:51 UTC (rev 4649)
@@ -94,9 +94,9 @@
       rt.tv_sec = sec;
       rt.tv_nsec = nsec;
       err = do_futex_timed_wait(isem, &rt);
-      if (err != 0 && err != -EWOULDBLOCK)
+      if (err != 0 && err != EWOULDBLOCK)
 	{
-	  __set_errno (-err);
+	  __set_errno (err);
 	  err = -1;
 	  break;
 	}

Modified: trunk/glibc-ports/kfreebsd/fbtl/sem_wait.c
===================================================================
--- trunk/glibc-ports/kfreebsd/fbtl/sem_wait.c	2013-06-28 17:33:57 UTC (rev 4648)
+++ trunk/glibc-ports/kfreebsd/fbtl/sem_wait.c	2013-06-28 18:08:51 UTC (rev 4649)
@@ -67,9 +67,9 @@
   while (1)
     {
       err = do_futex_wait(isem);
-      if (err != 0 && err != -EWOULDBLOCK)
+      if (err != 0 && err != EWOULDBLOCK)
 	{
-	  __set_errno (-err);
+	  __set_errno (err);
 	  err = -1;
 	  break;
 	}
@@ -112,9 +112,9 @@
       /* Disable asynchronous cancellation.  */
       __pthread_disable_asynccancel (oldtype);
     }
-  while (err == 0 || err == -EWOULDBLOCK);
+  while (err == 0 || err == EWOULDBLOCK);
 
-  __set_errno (-err);
+  __set_errno (err);
   return -1;
 }
 




More information about the Glibc-bsd-commits mailing list