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


I seem to have come in in the middle of this discussion.  Perhaps there
was some earlier mail that I missed for some reason.

I think WITHOUT-INTERRUPTS, or any other multiprocessing primitive, is
much too implementation-dependent to be appropriate for the portable
Common Lisp language.  I don't see any point in discussing it, because
there is no possible primitive that will meet the needs of all multiprocessing
implementation techniques.

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

    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.  

So what we have is that on some uniprocessors WITHOUT-INTERRUPTS or
CRITICAL-SECTION, it matters not at all what you call it, is
meaningless, on other uniprocessors it makes sense, and on large
multiprocessors it is so expensive to implement that no one will ever
use it.  If instead you decide to make a primitive that specifies more
precisely what synchronization is required, so that the implementation
will not be so expensive, you will have to build in assumptions about
some particular multiprocessor architecture.  There are an enormous
number of possible architectures, many of them advocated as the best
by people of strong convictions, and no agreement at present on unifying
general principles.

		Who knows -- and that's exactly the point.

Mine too.

This issue is simply outside the scope of what Common Lisp can hope to address.