Browse Source

added a procedure to manually set A2SystemUp (without having to enter the GC loop)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7858 8c9fc860-2736-0410-a75d-ab315db34111
felixf 7 năm trước cách đây
mục cha
commit
9fa0bef930
1 tập tin đã thay đổi với 8 bổ sung3 xóa
  1. 8 3
      source/Generic.Unix.Objects.Mod

+ 8 - 3
source/Generic.Unix.Objects.Mod

@@ -209,7 +209,7 @@ TYPE
 				sp := state.SP; bp := state.BP; 
 			
 				IF Heaps.GCType = Heaps.HeuristicStackInspectionGC THEN	
-					IF (bp < stackBottom) & (bp # 0) THEN
+					IF  (stackBottom # 0) & (bp < stackBottom) & (bp >1024) THEN
 						S.GET( bp, n );
 						IF ODD( n ) THEN (* procedure descriptor at bp *)
 							IF n > 1024 THEN
@@ -807,8 +807,13 @@ TYPE
 		SystemA2Up := TRUE;
 		LOOP Sleep( 100 ) END
 	END GCLoop;		
-	
-	
+
+	(* in order to get the traps running correctly without a BootConsole *)
+	PROCEDURE SystemA2IsUp*;
+	BEGIN
+		SystemA2Up := TRUE;		
+	END SystemA2IsUp;
+			
 	PROCEDURE CurrentProcessTime*(): HUGEINT;
 	BEGIN
 		RETURN  Machine.GetTimer()