Browse Source

added interface for non-blocking port IO

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6594 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova 9 years ago
parent
commit
4d8889210f
1 changed files with 16 additions and 0 deletions
  1. 16 0
      source/ActiveCellsRuntime.mod

+ 16 - 0
source/ActiveCellsRuntime.mod

@@ -67,9 +67,15 @@ type
 
 
 		procedure Send*(p: any; value: longint);
 		procedure Send*(p: any; value: longint);
 		end Send;
 		end Send;
+		
+		procedure SendNonBlocking*(p: any; value: longint): boolean;
+		end SendNonBlocking;
 
 
 		procedure Receive*(p: any; var value: longint);
 		procedure Receive*(p: any; var value: longint);
 		end Receive;
 		end Receive;
+		
+		procedure ReceiveNonBlocking*(p: any; var value: longint): boolean;
+		end ReceiveNonBlocking;
 			
 			
 	end Context;
 	end Context;
 	
 	
@@ -225,11 +231,21 @@ type
 	begin
 	begin
 		GetContext().Send(p, value);
 		GetContext().Send(p, value);
 	end Send;
 	end Send;
+	
+	procedure SendNonBlocking*(p: any; value: longint): boolean;
+	begin
+		return GetContext().SendNonBlocking(p, value);
+	end SendNonBlocking;
 
 
 	procedure Receive*(p: any; var value: longint);
 	procedure Receive*(p: any; var value: longint);
 	begin
 	begin
 		GetContext().Receive(p, value);
 		GetContext().Receive(p, value);
 	end Receive;
 	end Receive;
+	
+	procedure ReceiveNonBlocking*(p: any; var value: longint): boolean;
+	begin
+		return GetContext().ReceiveNonBlocking(p, value);
+	end ReceiveNonBlocking;
 
 
 type
 type
 	Module = pointer to record
 	Module = pointer to record