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