Commit [2d266d] Maximize Restore History

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.

Nikodemus Siivola Nikodemus Siivola 2010-09-21

changed NEWS
changed src
changed src/code
changed src/code/unix.lisp
changed tests
changed tests/signals.impure.lisp
changed version.lisp-expr
NEWS Diff Switch to side-by-side view
Loading...
src
Directory.
src/code
Directory.
src/code/unix.lisp Diff Switch to side-by-side view
Loading...
tests
Directory.
tests/signals.impure.lisp Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...