[Ecls-list] Changes in MP:PROCESS-JOIN

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Tue Jan 19 13:30:17 UTC 2010


 - PROCESS-JOIN was exported from the wrong package.

 - PROCESS-JOIN would fail when called while a thread was being started.

 - The output values of a process or thread are now collected in the process
   object and returned by PROCESS-JOIN.

 - The interrupt servicing thread must explicitely include the interrupt
signal
   among the ones it captures. Otherwise it will never be interrupted
itself.

ECL (Embeddable Common-Lisp) 10.1.1
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.
Top level in: #<process SI:TOP-LEVEL 00000001004c0f60>.
> (defvar *a* (mp:process-run-function 'mythread
                          #'(lambda ()
                  (catch 'foo (loop (print 1) (sleep 3))))))

1
*A*
>
1
[... many repetitions...]
1
(mp:interrupt-process *a* #'(lambda () (throw 'foo 2)))
T
> 2

2
> *a*

#<process MYTHREAD 00000001028baba0>
> (mp:process-join *a*)

2


-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20100119/5f16fbd9/attachment.html>


More information about the ecl-devel mailing list