Update of /cvsroot/sbcl/sbcl
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22483
Modified Files:
NEWS version.lisp-expr
Log Message:
1.0.42.50: workaround a Darwin nanosleep() bug
Fixes lp#640516.
It turns out that on Darwin, if a nanosleep() call is interrupted,
and the signal handler takes longer than the requested sleep time
was, then the call will return with EINTR and (unsigned)-1 in the
remaining seconds.
Since we call nanosleep() again when it returns with EINTR with the
remaining time, this would cause us to sleep ~136 years...
So, check that the remainder is not increasing before calling
nanosleep() again.
Many, many thanks to Joe Lobraco who reported and diagnosed the
issue.
Index: NEWS
===================================================================
RCS file: /cvsroot/sbcl/sbcl/NEWS,v
retrieving revision 1.1809
retrieving revision 1.1810
diff -u -d -r1.1809 -r1.1810
--- NEWS 21 Sep 2010 11:23:32 -0000 1.1809
+++ NEWS 21 Sep 2010 13:10:37 -0000 1.1810
@@ -59,6 +59,8 @@
(lp#316068)
* bug fix: (SETF DOCUMENTATION) of a macro works properly. (lp#643958, thanks
to Stas Boukarev)
+ * bug fix: interrupt taking longer than the requested period caused SLEEP
+ to hang on Darwin. (lp#640516, thanks to Joe Lebroco for the analysis)
changes in sbcl-1.0.42 relative to sbcl-1.0.41
* build changes
Index: version.lisp-expr
===================================================================
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.5021
retrieving revision 1.5022
diff -u -d -r1.5021 -r1.5022
--- version.lisp-expr 21 Sep 2010 11:23:33 -0000 1.5021
+++ version.lisp-expr 21 Sep 2010 13:10:38 -0000 1.5022
@@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.42.49"
+"1.0.42.50"
|