On CCL when timeout is specified and form returns more then one value only one is returned <br><br>CL-USER> (trivial-timeout:with-timeout (1)<br>           (values 1 2 3))<br>1<br>CL-USER><br><br>This fix that<br>Best,Milan<br>
<br>#+(or digitool openmcl ccl)<br>(defun generate-platform-specific-code (seconds-symbol doit-symbol)<br>  (let ((checker-process (format nil "Checker ~S" (gensym)))<br>   (waiting-process (format nil "Waiter ~S" (gensym)))<br>
   (process (gensym)))<br>    `(let* ((,process (ccl:process-run-function<br>           ,checker-process<br>           (lambda ()<br>       (progn (,doit-symbol))))))<br>       (ccl:process-wait-with-timeout<br>  ,waiting-process<br>
  (* ,seconds-symbol #+(or openmcl ccl)<br>     ccl:*ticks-per-second* #+digitool 60)<br>  (lambda ()<br>    (not (ccl::process-active-p ,process))))<br>       (when (ccl::process-active-p ,process)<br>   (ccl:process-kill ,process)<br>
   (cerror "Timeout" 'timeout-error))<br>       (ccl:join-process ,process))))<br><br>