Browse Source

Added proper check for existing parent process before attempting to inherit its context

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8589 8c9fc860-2736-0410-a75d-ab315db34111
negelef 6 năm trước cách đây
mục cha
commit
86f43dc597
1 tập tin đã thay đổi với 3 bổ sung1 xóa
  1. 3 1
      source/BIOS.Objects.Mod

+ 3 - 1
source/BIOS.Objects.Mod

@@ -1235,7 +1235,9 @@ BEGIN
 	NewProcess(body, flags, obj, t);
 	NewProcess(body, flags, obj, t);
 	Machine.Acquire(Machine.Objects);
 	Machine.Acquire(Machine.Objects);
 	t.id := nextProcessID; INC(nextProcessID);
 	t.id := nextProcessID; INC(nextProcessID);
-	t.context := CurrentContext();
+	IF ~Machine.WorkingOnKernelStack () THEN
+		t.context := CurrentContext();
+	END;
 	IF priority = 0 THEN	(* no priority specified *)
 	IF priority = 0 THEN	(* no priority specified *)
 		t.priority := running[Machine.ID ()].priority (* inherit priority of creator *)
 		t.priority := running[Machine.ID ()].priority (* inherit priority of creator *)
 	ELSIF priority > 0 THEN (* positive priority specified *)
 	ELSIF priority > 0 THEN (* positive priority specified *)