[squeak-dev] The Trunk: System-jcg.198.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Dec 18 08:02:32 UTC 2009


Joshua Gargus uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-jcg.198.mcz

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

Name: System-jcg.198
Author: jcg
Time: 18 December 2009, 12:02:08 pm
UUID: b3f50ecc-55c7-9249-aed8-0ab34e61d6fe
Ancestors: System-ar.197

Support for using #future and #future: keywords to conveniently send asynchronous messages.

Core support is in the Kernel package, and the default behavior is defined by Project, in the System package.

=============== Diff against System-ar.197 ===============

Item was added:
+ ----- Method: Project>>future:send:at:args: (in category 'futures') -----
+ future: receiver send: aSelector at: deltaMSecs args: args
+ 	"Send a message deltaSeconds into the future.  Answers a Promise that will be resolved at some time in the future."
+ 	| pr |
+ 	pr := Promise new.
+ 	deltaMSecs = 0
+ 		ifTrue: [
+ 			self addDeferredUIMessage: 
+ 				[pr resolveWith: (receiver perform: aSelector withArguments: args)]
+ 		]
+ 		ifFalse: [
+ 			[	(Delay forMilliseconds: deltaMSecs) wait.
+ 				self addDeferredUIMessage: 
+ 					[pr resolveWith: (receiver perform: aSelector withArguments: args)]
+ 			] forkAt: Processor userSchedulingPriority + 1.
+ 		].
+ 	^pr
+ 		!

Item was added:
+ ----- Method: Project>>future:do:at:args: (in category 'futures') -----
+ future: receiver do: aSelector at: deltaMSecs args: args
+ 	"Send a message deltaSeconds into the future.  No response is expected."
+ 	| msg |
+ 	msg := MessageSend receiver: receiver selector: aSelector arguments: args.
+ 	deltaMSecs = 0 
+ 		ifTrue: [self addDeferredUIMessage: msg]
+ 		ifFalse: [
+ 			[	(Delay forMilliseconds: deltaMSecs) wait.
+ 				self addDeferredUIMessage: msg.
+ 			] forkAt: Processor userSchedulingPriority + 1.
+ 		]..
+ 	^nil!




More information about the Squeak-dev mailing list