oops, fix recent NANOSLEEP change
authorNikodemus Siivola <nikodemus@sb-studio.net>
Mon, 22 Aug 2011 14:46:20 +0000 (17:46 +0300)
committerNikodemus Siivola <nikodemus@sb-studio.net>
Tue, 23 Aug 2011 12:17:37 +0000 (15:17 +0300)
  If the sleep gets interrupted multiple times on Darwin:
  update SECS and NSECS each round.

src/code/unix.lisp

index 57f531c..412ecdc 100644 (file)
@@ -976,6 +976,9 @@ corresponds to NAME, or NIL if there is none."
                            (rem-nsec (slot rem 'tv-nsec)))
                        (when (or (> secs rem-sec)
                                  (and (= secs rem-sec) (>= nsecs rem-nsec)))
+                         ;; Update for next round.
+                         (setf sec rem-sec
+                               nsec rem-nsec)
                          t)))
           do (setf (slot req 'tv-sec) (slot rem 'tv-sec)
                    (slot req 'tv-nsec) (slot rem 'tv-nsec)))))