A new version of Sake-Core was added to project Sake : http://www.squeaksource.com/Sake/Sake-Core-kph.110.mcz
==================== Summary ====================
Name: Sake-Core-kph.110 Author: kph Time: 11 July 2009, 3:37:19 pm UUID: dfd8168b-df49-44db-956d-66d7c0ccf4c4 Ancestors: Sake-Core-kph.109
Run prior tasks at my run level
=============== Diff against Sake-Core-kph.109 ===============
Item was changed: ----- Method: SakeTask>>privateRun (in category 'as yet unclassified') ----- privateRun
| priorTasks blocked wasBlocked | "this is the way that Rake orders tasks" "we ensure that we obtain the task to run from the overall set of tasks" self hasRun ifTrue: [ ^ result ]. priorTasks := self tasksFromList: self dependsOn.
"anyting it runs that is blocked is added to the block set, anything that suceeds is removed form the blocked set. at the end, we shall have a list of blocked tasks that can be retried, if that list is the same as the list that was blocked before stop and complain" blocked := Set new.
[ wasBlocked := blocked copy.
priorTasks do: [ :each | - each runLevel: runLevel. [ + each useSetOfTasks: setOfTasks during: [ each run: runLevel ]. - each useSetOfTasks: setOfTasks during: [ each privateRun]. blocked remove: each ifAbsent: [ ]. ] on: SakeBlock do: [ :ex | blocked add: ex task ]. ].
(blocked notEmpty and: [ blocked = wasBlocked ]) ifTrue: [ SakeBlock signalTask: self ].
] doWhileFalse: [ blocked isEmpty ].
(self isNeeded: priorTasks) ifTrue: [ self trace. self doAction: priorTasks. self hasRunSet. ^ result. ]. ^ false !
Item was added: + ----- Method: SakeTask>>run: (in category 'running') ----- + run: aRunLevel + + ^ self perform: aRunLevel!
packages@lists.squeakfoundation.org