2
0

Test.Mod 768 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. MODULE Test;
  2. IMPORT Trace, Machine;
  3. CONST
  4. Count = 1000;
  5. TYPE
  6. Counter = OBJECT
  7. VAR
  8. i: LONGINT;
  9. PROCEDURE Inc;
  10. BEGIN {EXCLUSIVE}
  11. INC(i);
  12. Trace.String("Machine: "); Trace.Int(Machine.ID(), 0); Trace.Ln
  13. END Inc;
  14. PROCEDURE Report;
  15. BEGIN {EXCLUSIVE}
  16. Trace.String("Finished: ");
  17. Trace.Int(i, 0);
  18. Trace.String(" ");
  19. Trace.Int(Machine.ID(), 0);
  20. Trace.Ln
  21. END Report;
  22. END Counter;
  23. Thread = OBJECT
  24. VAR
  25. c: Counter;
  26. i, n: LONGINT;
  27. PROCEDURE & Init (counter: Counter; iterations: LONGINT);
  28. BEGIN
  29. c := counter;
  30. n := iterations
  31. END Init;
  32. BEGIN {ACTIVE}
  33. FOR i := 1 TO n DO
  34. c.Inc
  35. END;
  36. c.Report
  37. END Thread;
  38. VAR
  39. c: Counter;
  40. t: Thread;
  41. BEGIN
  42. NEW(c);
  43. NEW(t, c, Count);
  44. (*NEW(c);*)
  45. NEW(t, c, Count)
  46. END Test.