From: Nikodemus Siivola Date: Mon, 22 Aug 2011 14:46:20 +0000 (+0300) Subject: oops, fix recent NANOSLEEP change X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=9ae34bc57917880d3fe6c2a1b5e322698b81ce96;p=sbcl.git oops, fix recent NANOSLEEP change If the sleep gets interrupted multiple times on Darwin: update SECS and NSECS each round. --- diff --git a/src/code/unix.lisp b/src/code/unix.lisp index 57f531c..412ecdc 100644 --- a/src/code/unix.lisp +++ b/src/code/unix.lisp @@ -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)))))