>From 002c7a903879f7fbae93239cc527519dc40ffd70 Mon Sep 17 00:00:00 2001 From: Gwenael Casaccio Date: Mon, 24 Mar 2014 15:17:22 +0100 Subject: [PATCH 3/3] Fix Process>>#priority: checks if myList is the process old priority queue and resume it (put it in new priority queue) --- ChangeLog | 5 +++++ kernel/Process.st | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3598812..285a65a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2014-03-24 Gwenael Casaccio + * kernel/Process.st: Fix the implementation of Process>>priority: it checks in the old + priority queue if the process was ready and resume it if so. + +2014-03-24 Gwenael Casaccio + * kernel/Process.st: Remve Process>>#startExecution:. 2014-03-24 Gwenael Casaccio diff --git a/kernel/Process.st b/kernel/Process.st index 37dd1a8..ef0e7d4 100644 --- a/kernel/Process.st +++ b/kernel/Process.st @@ -254,12 +254,12 @@ can suspend themselves and resume themselves however they wish.'> and: Processor highestPriority]. [ - | activePriority | - activePriority := Processor activePriority. + | oldPriority | + oldPriority := priority. priority := anInteger. "Atomically move the process to the right list, preempting the current process if necessary." - self isReady ifTrue: [self resume]. + myList == (Processor processesAt: oldPriority) ifTrue: [self resume]. ] valueWithoutPreemption ] -- 1.8.3.2