[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: greek@DEC-HUDSON.ARPA
- Subject: WITHOUT-INTERRUPTS
- From: David A. Moon <Moon@SCRC-STONY-BROOK.ARPA>
- Date: Wed, 23 Oct 85 13:32 EDT
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: The message of 23 Oct 85 11:28-EDT from greek@DEC-HUDSON
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
Date: Wed, 23 Oct 85 11:28:22 EDT
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
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
Who knows -- and that's exactly the point.
This issue is simply outside the scope of what Common Lisp can hope to address.