[slime-devel] Using the REPL when a computation is running.

Lynn Quam quam at ai.sri.com
Fri Jul 9 23:49:02 UTC 2004


Dirk Gerrits wrote:

>  I was told by Brian Mastenbrook that it required threading, and that
>  some work on it had been done.  Raymond Toy replied that threads were
>  not strictly necessary, and that ILISP did it by interrupting the
>  current computation, performing the requested action, and then
>  resuming the computation again. 

I would like to point out some dangers associated with both multiple
threads and interrupting the current computation, performing the
requested action, and then resuming the computation again.

The problem is that the "background process" muts be written to be
thread-safe.  This means that any globally accessable "objects" that
might be undergoing modification by the "background process" must be
locked in some manner and the computation performed by the REPL
process must respect those locks.

I am providing this information based on my experiences with the Lisp
Machine "mouse process" and the care that was required to insure
global objects were not modified in an unsafe manner.  

Lots of "random" bugs can be caused by ignoring thread safety.





More information about the slime-devel mailing list