On Tue, 03 Feb 2004 14:38:20 +0100, Eric Marsden <[EMAIL PROTECTED]> wrote:
> there are two things to look out for: (i) your init-function should > return an integer that will be the Unix exit code; Argh - I actually knew this! I was bitten by this some time ago already. Sorry for the noise. > (ii) your init-function should set up a catch block for > %END-OF-THE-WORLD, since this is used by CMUCL's internal error > handling machinery. > > One way of achieving what you want is > > ,---- > | (defun foo () > | (loop for i below 10 > | do (print i) (sleep .5)) > | (ext:quit)) > | > | (defun bar () > | (catch 'lisp::%end-of-the-world > | (mp::init-multi-processing) > | (mp:make-process #'foo) > | (mp:make-process #'foo) > | (mp::idle-process-loop))) > `---- Thanks, that works fine for me. Thanks also to Helmut Eller. > that's because the compiler knows that S-I-A-T-L-L does not return. Just out of curiosity: Where does it know that from? Is this explicitely stated somewhere in the code or can it deduce this somehow? Thanks again, Edi.
