The Inbox: Kernel-fbs.696.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Kernel-fbs.696.mcz

commits-2
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-fbs.696.mcz

==================== Summary ====================

Name: Kernel-fbs.696
Author: fbs
Time: 7 June 2012, 9:49:29.536 pm
UUID: 8ef79df8-3ee6-4c98-947e-7603307aa0c4
Ancestors: Kernel-nice.693

* Use the canonical Array empty rather than #();
* the instvar's initialised to an Array anyway 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>>initialize (in category 'initialize') -----
  initialize
  isResolved := false.
+ resolvers := Array empty.
- resolvers := #().
  mutex := Mutex new.!

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]].
  ].!