[Glibc-bsd-commits] r4647 - in trunk/glibc-ports/kfreebsd: . fbtl

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


Author: ps-guest
Date: 2013-06-28 17:32:25 +0000 (Fri, 28 Jun 2013)
New Revision: 4647

Added:
   trunk/glibc-ports/kfreebsd/fbtl/sleep.c
Modified:
   trunk/glibc-ports/kfreebsd/sleep.c
Log:
cancel also sleep(0) properly


Added: trunk/glibc-ports/kfreebsd/fbtl/sleep.c
===================================================================
--- trunk/glibc-ports/kfreebsd/fbtl/sleep.c	                        (rev 0)
+++ trunk/glibc-ports/kfreebsd/fbtl/sleep.c	2013-06-28 17:32:25 UTC (rev 4647)
@@ -0,0 +1,2 @@
+#include <pthreadP.h>
+#include "../sleep.c"

Modified: trunk/glibc-ports/kfreebsd/sleep.c
===================================================================
--- trunk/glibc-ports/kfreebsd/sleep.c	2013-06-28 16:17:27 UTC (rev 4646)
+++ trunk/glibc-ports/kfreebsd/sleep.c	2013-06-28 17:32:25 UTC (rev 4647)
@@ -29,9 +29,14 @@
   int ret;
 
   /* This is not necessary but some buggy programs depend on this.  */
-  if (seconds == 0)
-    return 0;
-
+  if (__builtin_expect (seconds == 0, 0))
+    {
+#ifdef CANCELLATION_P
+      CANCELLATION_P (THREAD_SELF);
+#endif
+      return 0;
+    }
+                        
   ret = __nanosleep (&ts, &ts);
 
   if (ret == 0)




More information about the Glibc-bsd-commits mailing list