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/code/unix.lisp
changed tests/signals.impure.lisp
changed version.lisp-expr
NEWS Diff Switch to side-by-side view
Loading...
src/code/unix.lisp Diff Switch to side-by-side view
Loading...
tests/signals.impure.lisp Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks