On CCL 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>
This fix that Best,Milan
#+(or digitool openmcl ccl) (defun generate-platform-specific-code (seconds-symbol doit-symbol) (let ((checker-process (format nil "Checker ~S" (gensym))) (waiting-process (format nil "Waiter ~S" (gensym))) (process (gensym))) `(let* ((,process (ccl:process-run-function ,checker-process (lambda () (progn (,doit-symbol)))))) (ccl:process-wait-with-timeout ,waiting-process (* ,seconds-symbol #+(or openmcl ccl) ccl:*ticks-per-second* #+digitool 60) (lambda () (not (ccl::process-active-p ,process)))) (when (ccl::process-active-p ,process) (ccl:process-kill ,process) (cerror "Timeout" 'timeout-error)) (ccl:join-process ,process))))