Difference between revisions of "Standard"

From Mesham
Jump to navigationJump to search
m
m (5 revisions imported)
 
(2 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
== Example ==
 
== Example ==
  
  var a:Int::allocated[single[on[1]]] :: nonblocking[] :: standard[];
+
  function void main() {
var b:Int::allocated[single[on[2]]] :: standard[];
+
    var a:Int::allocated[single[on[1]]] :: nonblocking[] :: standard[];
a:=b;
+
    var b:Int::allocated[single[on[2]]] :: standard[];
 +
    a:=b;
 +
};
  
 
In the P2P communication resulting from assignment ''a:=b'', process 1 will issue a non-blocking standard receive whilst process 2 will issue a blocking standard send.
 
In the P2P communication resulting from assignment ''a:=b'', process 1 will issue a non-blocking standard receive whilst process 2 will issue a blocking standard send.
  
''Since: Version 0.41b''
+
''Since: Version 0.5''
  
 
[[Category:Type Library]]
 
[[Category:Type Library]]
 
[[Category:Compound Types]]
 
[[Category:Compound Types]]
 
[[Category:Communication Mode Types]]
 
[[Category:Communication Mode Types]]

Latest revision as of 15:44, 15 April 2019

Syntax

standard[ ]

Semantics

This type will force P2P sends to follow the standard form of reaching the finish state either when the message has been delivered or it has been copied into a buffer on the sender. This is the default applied if further type information is not present.

Example

function void main() {
   var a:Int::allocated[single[on[1]]] :: nonblocking[] :: standard[];
   var b:Int::allocated[single[on[2]]] :: standard[];
   a:=b;
};

In the P2P communication resulting from assignment a:=b, process 1 will issue a non-blocking standard receive whilst process 2 will issue a blocking standard send.

Since: Version 0.5