[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Date: Wed, 23 Oct 85 11:28:22 EDT
Mr. Greenberg has pointed out that I've only hidden the problem by
suggesting CRITICAL-SECTION instead of WITHOUT-INTERRUPTS. That's
exactly what I intended to do.
WITHOUT-INTERRUPTS is too specific, and deals only with interrupt
questions, not with memory lockout or other strange things that
may occur on multiprocessors.
CRITICAL-SECTION, I believe, suggests what it is that we are trying
to accomplish, without being specific. On a simple processor running
a LISP without its own tasking or interrupts, it would be a nop.
With interrupts, it would lock them out. With tasks, it would also
prevent task switches. On a multiprocessor it might also do some
kind of memory lockout to prevent the other processors from stomping
on things. Who knows -- and that's exactly the point.
As you hint in the next paragraph, it's not a question of "who knows",
but an issue of different kinds of outlocking being appropriate at
different times, on a more complicated system
Perhaps the problem is that there are so many classes of things we
want to lock out that we need multiple macros or options to the
Exactly, if we decide that the problem has to be addressed by the
language at all. Unless CRITICAL-SECTION has a bunch of options,
it addresses -no- problems. It is not clear to me that the
conceptual options can be stated in a system-independent way.
I am not willing to say that I know about all the tasking and
processor-sharing paradigms that have been, or might be invented.