A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-fbs.697.mcz==================== Summary ====================
Name: Kernel-fbs.697
Author: fbs
Time: 8 June 2012, 2:58:00.068 pm
UUID: bcec51c0-7e42-4f78-897b-73b99f088354
Ancestors: Kernel-nice.693
* The resolver instvar is initialised to an Array so #ifNotNil: is a no-op.
* #evaluateResolver: reimplemented #cull:; rather use BlockClosure's version - less duplication.
=============== Diff against Kernel-nice.693 ===============
Item was changed:
----- Method: Promise>>evaluateResolver: (in category 'private') -----
evaluateResolver: resolverBlock
+ resolverBlock cull: value.!
- resolverBlock numArgs = 0
- ifTrue: [resolverBlock value]
- ifFalse: [resolverBlock value: value].
- !
Item was changed:
----- Method: Promise>>resolveWith: (in category 'resolving') -----
resolveWith: arg
"Resolve this promise"
mutex critical: [
isResolved ifTrue: [self error: 'Promise was already resolved'].
value := arg.
isResolved := true.
+ resolvers do: [:r | self evaluateResolver: r].
- resolvers ifNotNil: [resolvers do: [:r | self evaluateResolver: r]].
].!