Hi Milan,
Thanks very much for the patch and my apologies for letting in sit in limbo for so long.
I'll apply it shortly.
On Mar 13, 2009, at 5:51 AM, Milan Jovanovic wrote:
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))))
trivial-timeout-devel mailing list trivial-timeout-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/trivial-timeout-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter