produce something seeming to workaround https://bugs.launchpad.net/ubuntu/+source...
authortg <tg@mirbsd.org>
Thu, 28 Jul 2011 15:28:42 +0000 (15:28 +0000)
committertg <tg@mirbsd.org>
Thu, 28 Jul 2011 15:28:42 +0000 (15:28 +0000)
debian/changelog
src/subr.c

index 0b7f7d5..883ae36 100644 (file)
@@ -9,8 +9,10 @@ cvs (2:1.12.13+real-6) xunstable; urgency=low
   * d/rules: Add build-{arch,indep} targets as aliases to build
   * Bring d/copyright more in sync with this distfile’s reality
   * d/control: Reword package description. (Closes: #631826)
+  * If sleeping at exit, sleep another 20 ms (2 HZ), to avoid
+    possible race conditions. (Should work around LP: #12230)
 
- -- Thorsten Glaser <tg@mirbsd.de>  Thu, 28 Jul 2011 13:41:39 +0000
+ -- Thorsten Glaser <tg@mirbsd.de>  Thu, 28 Jul 2011 15:28:22 +0000
 
 cvs (2:1.12.13+real-5) unstable; urgency=low
 
index 4c73fe2..39a98e7 100644 (file)
@@ -807,6 +807,8 @@ sleep_past (time_t desttime)
     long s;
     long us;
 
+    if (time (&t) > desttime) return;
+
     while (time (&t) <= desttime)
     {
 #ifdef HAVE_GETTIMEOFDAY
@@ -835,6 +837,14 @@ sleep_past (time_t desttime)
            (void)nanosleep (&ts, NULL);
        }
     }
+
+    /* sleep another 20 ms (2 HZ) to avoid races */
+    {
+        struct timespec ts;
+        ts.tv_sec = s;
+        ts.tv_nsec = us * 1000;
+        (void)nanosleep (&ts, NULL);
+    }
 }