فهرست منبع

Added temporary activity while finalizing based on the finalizer of activity

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8390 8c9fc860-2736-0410-a75d-ab315db34111
negelef 6 سال پیش
والد
کامیت
a67fcdfc15
1فایلهای تغییر یافته به همراه3 افزوده شده و 1 حذف شده
  1. 3 1
      source/Activities.Mod

+ 3 - 1
source/Activities.Mod

@@ -116,12 +116,14 @@ TYPE Process = OBJECT {DISPOSABLE} (Activity)
 	END Unlink;
 
 	PROCEDURE ~Finalize;
-	VAR item: Queues.Item;
+	VAR currentActivity {UNTRACED}: Activity; item: Queues.Item;
 	BEGIN {UNCOOPERATIVE, UNCHECKED}
 		IF object # NIL THEN
+			currentActivity := SYSTEM.GetActivity ()(Activity); SYSTEM.SetActivity (SELF);
 			object.action.activity := NIL;
 			IF Queues.Dequeue (item, object.action.waitingQueue) THEN Resume (item(Activity)) END;
 			Unlink;
+			SYSTEM.SetActivity (currentActivity);
 		END;
 		Finalize^;
 	END Finalize;