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

Dirk Gerrits dirk at dirkgerrits.com
Sat Jul 10 13:34:19 UTC 2004


Lynn Quam <quam at ai.sri.com> writes:

> 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.

Thanks for the warning.  

BTW, do Lisp implementations make any guarantees about which actions are
atomic?  For example, suppose *some-var* is bound to 10 and I type (setq
*some-var* 42) in the REPL, will the running process see just the values
10 and 42, or might it inspect *some-var* when the assignment is still
going on and see 'garbage'?

Regards,

Dirk Gerrits




More information about the slime-devel mailing list