1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- MODULE Test;
- IMPORT Trace, Machine;
- CONST
- Count = 1000;
- TYPE
- Counter = OBJECT
- VAR
- i: LONGINT;
- PROCEDURE Inc;
- BEGIN {EXCLUSIVE}
- INC(i);
- Trace.String("Machine: "); Trace.Int(Machine.ID(), 0); Trace.Ln
- END Inc;
- PROCEDURE Report;
- BEGIN {EXCLUSIVE}
- Trace.String("Finished: ");
- Trace.Int(i, 0);
- Trace.String(" ");
- Trace.Int(Machine.ID(), 0);
- Trace.Ln
- END Report;
- END Counter;
- Thread = OBJECT
- VAR
- c: Counter;
- i, n: LONGINT;
- PROCEDURE & Init (counter: Counter; iterations: LONGINT);
- BEGIN
- c := counter;
- n := iterations
- END Init;
- BEGIN {ACTIVE}
- FOR i := 1 TO n DO
- c.Inc
- END;
- c.Report
- END Thread;
- VAR
- c: Counter;
- t: Thread;
- BEGIN
- NEW(c);
- NEW(t, c, Count);
- (*NEW(c);*)
- NEW(t, c, Count)
- END Test.
|