[squeak-dev] The Inbox: Chronology-Core-ct.67.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jul 2 16:11:20 UTC 2021


A new version of Chronology-Core was added to project The Inbox:
http://source.squeak.org/inbox/Chronology-Core-ct.67.mcz

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

Name: Chronology-Core-ct.67
Author: ct
Time: 2 July 2021, 6:11:19.127885 pm
UUID: 7a3d4136-ddb1-ea49-a035-d166391d3fb1
Ancestors: Chronology-Core-dtl.66

Adds Duration >> #busyWait and some explaining prose.

See http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-July/215928.html. Thank you for the feedback!

=============== Diff against Chronology-Core-dtl.66 ===============

Item was added:
+ ----- Method: Duration>>busyWait (in category 'squeak protocol') -----
+ busyWait
+ 	"Run an infinite loop until the receiver has elapsed. Performance-intensive!! Usually, you will want to use #wait instead which does not stress the interpreter but instead uses a delay, giving other processes the chance to run. However, scheduling a Delay comes with a synchronization overhead which denies its suitability for very short or precise delays. See http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-July/215928.html for further information."
+ 	
+ 	"[3 seconds busyWait] timeToRun"
+ 
+ 	| proceedTime |
+ 	proceedTime := Time utcMicrosecondClock + self asMicroSeconds.
+ 	[Time utcMicrosecondClock >= proceedTime] whileFalse!

Item was changed:
  ----- Method: Duration>>wait (in category 'squeak protocol') -----
  wait
+ 	"Convert this duration in a delay and wait once. Answer the created delay so that the client can wait on it again if needed. While this is the most CPU-friendly implementation, it comes with a small overhead for scheduling the delay as scheduling must be synchronized over all processes (see Delay >> #schedule). For very short, precise delays, consider using #busyWait instead."
- 	"Convert this duration in a delay and wait once. Answer the created delay so that the client can wait on it again if needed."
  	
  	"[3 seconds wait] timeToRun"
  	
  	^self asDelay wait!



More information about the Squeak-dev mailing list