~ chicken-core (chicken-5) 3ee08462294b9bf7d1f601afcf97991b51b84782
commit 3ee08462294b9bf7d1f601afcf97991b51b84782
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Oct 21 03:56:08 2010 -0400
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Thu Oct 21 03:56:08 2010 -0400
catch negative timeout values in ##sys#thread-block-for-timeout
diff --git a/scheduler.scm b/scheduler.scm
index c247a29f..6d194209 100644
--- a/scheduler.scm
+++ b/scheduler.scm
@@ -236,7 +236,8 @@ EOF
(define (##sys#thread-block-for-timeout! t tm)
(dbg t " blocks for timeout " tm)
- (unless (flonum? tm) ; to catch old code that uses fixum timeouts
+ (unless (and (flonum? tm) ; to catch old code that uses fixum timeouts
+ (fp> tm 0))
(panic "##sys#thread-block-for-timeout!: invalid timeout"))
;; This should really use a balanced tree:
(let loop ([tl ##sys#timeout-list] [prev #f])
Trap