printable. (reported by Eric Marsden)
* bug fix in sb-posix: mmap() now works on systems with a 64-bit
off_t, including Darwin and FreeBSD. (thanks to Andreas Fuchs)
+ * bug fix in WITH-TIMEOUT: now the body can have more than one form.
+ (thanks to Stig Sandoe)
* fixed some bugs revealed by Paul Dietz' test suite:
** The system now obeys the constraint imposed by
UPGRADED-ARRAY-ELEMENT-TYPE that the upgraded array element
(slot (slot itvo 'it-value) 'tv-usec))
which (alien-sap (addr itvn))(alien-sap (addr itvo))))))
-(defmacro sb!ext::with-timeout (expires &body body)
+(defmacro sb!ext:with-timeout (expires &body body)
"Execute the body, interrupting it with a SIGALRM after at least
EXPIRES seconds have passed. Uses Unix setitimer(), restoring any
previous timer after the body has finished executing"
(unix-setitimer :real 0 0 ,s ,u)
,@body)
(unix-setitimer :real 0 0 ,saved-seconds ,saved-useconds))
- ,@body)))))
-
+ (progn
+ ,@body))))))
\f
(defconstant ENOENT 2) ; Unix error code, "No such file or directory"
;;; DECLARE should not be a special operator
(assert (not (special-operator-p 'declare)))
+
+;;; WITH-TIMEOUT should accept more than one form in its body.
+(handler-bind ((sb-ext:timeout #'continue))
+ (sb-ext:with-timeout 3
+ (sleep 2)
+ (sleep 2)))
;;; 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".)
-"0.8.2.19"
+"0.8.2.20"