Ann: Stackless Limbo Dancing Works Fine!
Andrew Henshaw
andrew.henshaw at mail.com
Sat May 25 01:02:30 EDT 2002
Fernando Pereira wrote:
> On 5/23/02 11:31 PM, in article uerd0l9d54dac9 at corp.supernews.com, "Andrew
> Henshaw" <andrew.henshaw at mail.com> wrote:
>
>> Fernando Pereira wrote:
>>> I can't find my CSP book, but from memory I don't think this is correct.
>>> Through || (PAR), it is possible for several concurrent processes to
>>> attempt to read or to write on the same channel. Then the channel
>>> implementation needs a queue to hold all the blocked processes until a
>>> complementary event occurs, at which point one of the pending requests
>>> is matched to the event and the blocked process becomes runable.
>>
>> I believe that my statement was correct. From a 1985 version of
>> Communicating Sequential Processes (p. 134):
>>
>> "We shall observe the convention that channels are used for communication
>> in only one direction and between only two processes. A channel which is
>> used only for output by a process will be called an output channel of
>> that
>> process; and one used only for input will be called an input channel. In
>> both cases, we shall say loosely that the channel name is a member of the
>> alphabet of the process."
>
> As I said, I can't find my copy of the book. But this restriction is a
> *convention* only. The language syntax does not impose that restriction,
> nor does the semantics AFAIK.
>
> -- F
CSP is a systematic collection of algebraic laws. Thus, when the
formulator states "we **shall** observe the convention that channels are
used ... between only two processes" (emphasis mine), then that is how it
is defined. Another wording later in the book eliminates the use of the
word "convention" and refers to "...the restriction that a channel is
between two processes only...." Perhaps you could find a statement that
contradicts this. I cannot find anything that even hints at such a use as
you describe. Certainly, as I demonstrated with the Occam examples, you
can build higher-level constructs that achieve the effect; but, the channel
primitive itself does not have that characteristic.
Andy Henshaw
More information about the Python-list
mailing list