On CCL and LW when timeout is specified and form returns more then one value only one is returned
CL-USER> (trivial-timeout:with-timeout (1) (values 1 2 3)) 1 CL-USER>
--- with-timeout-orig.lisp 2009-03-14 15:45:54.000000000 +0100 +++ with-timeout.lisp 2009-03-14 15:47:33.000000000 +0100 @@ -81,7 +81,7 @@ or is interrupted." (,process (ccl:process-run-function ,checker-process (lambda () - (setf ,result (progn (,doit-symbol))))))) + (setf ,result (multiple-value-list (,doit-symbol))))))) (ccl:process-wait-with-timeout ,waiting-process (* ,seconds-symbol #+(or openmcl ccl) @@ -91,7 +91,7 @@