+ #-(or abcl allegro ccl cmu lispworks sb-thread)
+ `(progn ,@body)
+ )
+
+
+(defmacro with-timeout ((seconds) &body body)
+ #+allegro
+ `(mp:with-timeout (,seconds) ,@body)
+ #+cmu
+ `(mp:with-timeout (,seconds) ,@body)
+ #+sb-thread
+ `(sb-ext:with-timeout ,seconds ,@body)
+ #+ccl
+ `(ccl:process-wait-with-timeout "waiting"
+ (* ,seconds ccl:*ticks-per-second*)
+ #'(lambda ()
+ ,@body) nil)
+ #-(or allegro cmu sb-thread ccl)
+ `(progn ,@body)