Home
   News
   About the project
   Language
   Compiler download
   Test suite
   Blog on the programming model
   Zonnon @ OCP Forum
   Collection of examples

TEST: 093-T19-T

category

status

Compilation and execution results for Windows (first) and Mono (second)
PASSED Compiler: 1.2.8.0
Date, time: 2010.08.06, 18:06
Compilation: SUCCESS
Execution: SUCCESS
(17, 8) Usage of System.Threading is deprecated. Use corresponding language constructs
PASSED Compiler: 1.2.8.0
Date, time: 2010.08.06, 22:22
Compilation: SUCCESS
Execution: SUCCESS
(17, 8) Usage of System.Threading is deprecated. Use corresponding language constructs
(0, 0) Assembly reference not resolved: System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.

code

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
 (**   
  * 9. Concurrency-Activities-Protocols  
  * 9.3. Barrier-Controlled-Activities  
  *  
  * Positive test: Execution oriented example  
  *)  
   
 module {protected} Main;  
 (*  
    Note:  
     The idea of this test is to check if subactivities   
     are terminated within the blocks they are initialised.  
   
     We have 3 activities that set global flag into 1   
     in several miliseconds after its execution.  
 *)  
 import System.Threading;  
   
 var  
      a1, a2, a3 : integer; (* flags *)  
   
 activity Activity3;  
 begin  
      await 500;  
      a3 := 1  
 end Activity3;  
   
 activity Activity2;  
 begin  
      await 100;  
      a2 := a3;     (* a3 will be zero by the time of  
                          assignment *)  
 end Activity2;  
   
 activity Activity1;  
 begin            
      do {barrier}  
              new Activity3;  
           new Activity2  
      end; (* Will wait for Activity 2 and 3 *)  
   
      a1 := a3 + a2; (* a3 is zero in this example *)  
 end Activity1;  
   
 var   
      sum : integer;  
 begin  
      a1 := 0;  
      a2 := 0;  
      a3 := 0;  
   
      do {barrier}  
           new Activity1  
      end;  
   
      sum := a1 + a2 + a3; (* should be a1=a3=1, a2=0 => sum=1 *)  
   
      if sum = 2 then (* it is OK *)  
            halt(1)  (* success *)  
      else  
           halt(0)  (* failure *)  
      end;  
 end Main. 

information

  • PASSED - overall positive decision about the test
  • NOT PASSED - overall negative decision about the test
  • SUCCESS - compilation / execution successful
  • ERROR - compilation failed with normal syntax or semantic error
  • ABORT - compilation failed because of an internal compiler error
  • NOT RUN - the test was not / not supposed to be executed
  • FAIL - execution failed
Copyright © 2010 ETH Zurich, Switzerland