From gwking at metabang.com Tue Jul 21 16:12:40 2009 From: gwking at metabang.com (Gary King) Date: Tue, 21 Jul 2009 12:12:40 -0400 Subject: [trivial-timeout-devel] CCL fix In-Reply-To: <3d8e533e0903130251m35e20d9g97dc193beb5f6239@mail.gmail.com> References: <3d8e533e0903130251m35e20d9g97dc193beb5f6239@mail.gmail.com> Message-ID: <05D7272B-ACF4-4179-9F43-5332A380E657@metabang.com> 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 at 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