Channel

From Mesham
Revision as of 19:23, 10 January 2010 by Polas (talk | contribs) (Created page with ' == Syntax == channel[a,b] Where ''a'' and ''b'' are both distinct processes which the channel will connect. == Semantics == The ''channel'' type will specify that a variable…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Syntax

channel[a,b]

Where a and b are both distinct processes which the channel will connect.

Semantics

The channel type will specify that a variable is a channel from process a (sender) to process b (receiver.) Normally this will result in synchronous communication, although if the async type is used then asynchronous communication is selected instead. Note that channel is unidirectional, where process a sends and b receives, NOT the otherway around.

Example

var x:Int::allocated[multiple[]];
var p;
par p from 0 to 2
{
   (x::channel[0,2]):=193;
   var hello:=(x::channel[0,2]);
};

In this case, x is a channel between processes 0 and 2. In the par loop process 0 sends the value 193 to process 2. Then the variable hello is declared and process 2 will receive this value.