Pārlūkot izejas kodu

Use proper status

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8290 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 gadi atpakaļ
vecāks
revīzija
75b05bb76e
2 mainītis faili ar 5 papildinājumiem un 3 dzēšanām
  1. 1 1
      source/Coop.Objects.Mod
  2. 4 2
      source/Unix.StdIO.Mod

+ 1 - 1
source/Coop.Objects.Mod

@@ -56,7 +56,7 @@ TYPE
 	Clock = OBJECT
 	VAR h: Timer;
 	BEGIN {ACTIVE, SAFE, PRIORITY(High)}
-		WHILE Environment.status = 0 DO
+		WHILE Environment.status = Environment.Running DO
 			Machine.Acquire(Machine.Objects);
 			LOOP
 				h := event.next;

+ 4 - 2
source/Unix.StdIO.Mod

@@ -5,7 +5,7 @@ MODULE StdIO;	(** AUTHOR gf;  PURPOSE "Unix standard IO and argument channels *)
 IMPORT SYSTEM, Modules, Commands, Streams,Pipes , Unix;
 
 #IF COOP THEN
-	IMPORT Activities, Environment;
+	IMPORT Activities, Counters, Environment;
 #END
 
 CONST 
@@ -61,11 +61,13 @@ END Args;
 
 	PROCEDURE ReadActivity (p: ADDRESS);
 	BEGIN
-		WHILE Environment.status = 0 DO
+		WHILE Environment.status = Environment.Running DO
 			BEGIN {EXCLUSIVE}
+				Counters.Inc (Activities.awaiting);
 				AWAIT (~read.ready);
 				read.result := Unix.read( 0, read.buffer, read.size );
 				read.ready := TRUE;
+				Counters.Dec (Activities.awaiting);
 			END;
 		END;
 	END ReadActivity;