ソースを参照

use builtin MIN/MAX +
added a comment to Process.SetPriority()

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8580 8c9fc860-2736-0410-a75d-ab315db34111

eth.guenter 6 年 前
コミット
6fb307cecc
1 ファイル変更9 行追加15 行削除
  1. 9 15
      source/Unix.Objects.Mod

+ 9 - 15
source/Unix.Objects.Mod

@@ -279,8 +279,13 @@ TYPE
 		PROCEDURE SetPriority( prio: LONGINT );
 		VAR pr: LONGINT;
 		BEGIN
-			pr := max( Machine.prioLow, min( prio, Machine.prioHigh ) );
-			Unix.ThrSetPriority( threadId, pr );	(* works only if SUID root *)
+		(*
+			Linux/Solaris11: works only with SUID root and FIFO threads
+			Solaris10: woks only with SUID root
+			Darwin: works allways
+		*)
+			pr := MAX( Machine.prioLow, MIN( prio, Machine.prioHigh ) );
+			Unix.ThrSetPriority( threadId, pr );	
 			priority := GetPriority( )	
 		END SetPriority;
 		
@@ -594,17 +599,6 @@ TYPE
 	(*-----------------------------------------------------------------------*)
 	
 	
-	PROCEDURE min( a, b: LONGINT ): LONGINT;
-	BEGIN
-		IF a <= b THEN  RETURN a  ELSE  RETURN b  END
-	END min;
-
-	PROCEDURE max( a, b: LONGINT ): LONGINT;
-	BEGIN
-		IF a >= b THEN  RETURN a  ELSE  RETURN b  END
-	END max;
-	
-	
 	PROCEDURE RegisterFinalizer( obj: ANY;  fin: Heaps.Finalizer );
 	VAR n: Heaps.FinalizerNode;
 	BEGIN
@@ -818,7 +812,7 @@ TYPE
 	END TimerFrequency;
 
 
-	PROCEDURE LeaveA2;
+	PROCEDURE LeaveA2-;
 	VAR cur: Process; bp, n: ADDRESS;
 	BEGIN
 		IF clock = NIL THEN  RETURN  END;
@@ -831,7 +825,7 @@ TYPE
 		END;
 	END LeaveA2;
 
-	PROCEDURE ReenterA2;
+	PROCEDURE ReenterA2-;
 	VAR cur : Process;
 	BEGIN
 		IF clock = NIL THEN  RETURN  END;