Lynn Quam quam@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