[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


    Date: Wed, 23 Oct 85 11:28:22 EDT
    From: greek@DEC-HUDSON

    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
    one macro.
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.
    - Paul