YAY!!�� Thanks Esteban for integration, and Nicolai and Max for code reviews.
To observe the new behaviour:
1. Tools > Process Browser�� �� ��Observe at the top "(80) Delay Scheduling Process: DelayMicrosecondScheduler>>runTimerEventLoop"
�� �� ��This based on the new primitive by Eliot that rolls over every 50,000 years.
2. System > Settings > System > Delay Scheduler - select "DelayMillisecondScheduler"
3. Right-click back in Process Browser, and select [update list].
�� �� Observe at the top "(80) Delay Scheduling Process: DelayMillisecondScheduler>>runTimerEventLoop"�� �� This is the old primitive that rolls over every 6 days.
Actually not really very exciting to look at ;) - but there you go!�� I'm glad its integrated.�� Now we'll see if any corner case bugs shake out of the woodwork.
Note that the option list also includes "DelayScheduler".�� This is the old scheduler I refactored out from the class side of Delay.�� This was only kept as-is to smooth this integration step.�� It essentially became DelayMillisecondScheduler and will be removed from that list to allow some required cleanup to proceed.
In the "super fast delay" thread I'll advise that it is solved.
cheers -ben��
On Tue, Mar 10, 2015 at 11:43 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
a distinctive four-note "short-short-short-long" motif twice ;-)
> On 10 Mar 2015, at 16:31, GitHub <noreply@github.com> wrote:
>
>�� Branch: refs/heads/4.0
>�� Home:�� ��https://github.com/pharo-project/pharo-core
>�� Commit: bea5e5edece36093f82ab3a8854b61377dfbd0a1
>�� �� �� https://github.com/pharo-project/pharo-core/commit/bea5e5edece36093f82ab3a8854b61377dfbd0a1
>�� Author: Jenkins Build Server <board@pharo-project.org>
>�� Date:�� ��2015-03-10 (Tue, 10 Mar 2015)
>
>�� Changed paths:
>�� �� M Kernel.package/Delay.class/README.md
>�� �� R Kernel.package/Delay.class/class/enable new code/newCodeEnabled.st
>�� �� A Kernel.package/Delay.class/class/settings/delaySchedulerClass.st
>�� �� A Kernel.package/Delay.class/class/settings/delaySchedulerClass_.st
>�� �� A Kernel.package/Delay.class/class/settings/systemSettingOn_.st
>�� �� M Kernel.package/Delay.class/definition.st
>�� �� R Kernel.package/Delay.class/instance/enable new code/newCodeEnabled.st
>�� �� A Kernel.package/Delay.class/instance/printing/millisecondsToGo.st
>�� �� M Kernel.package/Delay.class/instance/printing/printOn_.st
>�� �� A Kernel.package/Delay.class/instance/private - scheduler/schedulerBeingWaitedOn.st
>�� �� A Kernel.package/Delay.class/instance/private - scheduler/schedulerBeingWaitedOn_.st
>�� �� A Kernel.package/Delay.class/instance/private - scheduler/schedulerResumptionTime.st
>�� �� A Kernel.package/Delay.class/instance/private - scheduler/schedulerResumptionTime_.st
>�� �� A Kernel.package/Delay.class/instance/private - scheduler/schedulerSignalWaitingProcess.st
>�� �� A Kernel.package/Delay.class/instance/private - scheduler/scheduler_resumptionTime_.st
>�� �� M Kernel.package/Delay.class/instance/private/setDelay_.st
>�� �� M Kernel.package/Delay.class/instance/private/setDelay_forSemaphore_.st
>�� �� M Kernel.package/Delay.class/instance/public/delayDuration.st
>�� �� A Kernel.package/Delay.class/instance/public/millisecondDelayDuration.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/README.md
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/definition.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/low priority processes/schedule_.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/primitives/primSignal_atUTCMicroseconds_.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/printing/millisecondsUntilResumptionTime_.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/snapshotting/adjust_resumptionTimeOldBase_newBase_.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/snapshotting/restoreResumptionTimes.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/snapshotting/saveResumptionTimes.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/snapshotting/startUp.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/timer process/handleTimerEvent_.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/timer process/runTimerEventLoop.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/timer process/scheduleDelay_.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/timer process/startTimerEventLoop.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/timer process/stopTimerEventLoop.st
>�� �� A Kernel.package/DelayMicrosecondScheduler.class/instance/timer process/unscheduleDelay_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/README.md
>�� �� A Kernel.package/DelayMillisecondScheduler.class/definition.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/low priority processes/schedule_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/primitives/primSignal_atMilliseconds_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/printing/millisecondsUntilResumptionTime_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/snapshotting/adjust_resumptionTimeOldBase_newBase_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/snapshotting/restoreResumptionTimes.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/snapshotting/saveResumptionTimes.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/timer process/handleTimerEvent_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/timer process/runTimerEventLoop.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/timer process/scheduleDelay_.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/timer process/startTimerEventLoop.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/timer process/stopTimerEventLoop.st
>�� �� A Kernel.package/DelayMillisecondScheduler.class/instance/timer process/unscheduleDelay_.st
>�� �� M Kernel.package/DelayScheduler.class/README.md
>�� �� M Kernel.package/DelayScheduler.class/instance/class initialization/initialize.st
>�� �� A Kernel.package/DelayScheduler.class/instance/printing/millisecondsUntilResumptionTime_.st
>�� �� M Kernel.package/DelayScheduler.class/instance/testing/nextWakeUpTime.st
>�� �� M Kernel.package/DelayScheduler.class/instance/timer process/stopTimerEventLoop.st
>�� �� A Kernel.package/DelayWaitTimeout.class/instance/signaling/schedulerSignalWaitingProcess.st
>�� �� A Kernel.package/Duration.class/instance/converting/asMicroseconds.st
>�� �� A Kernel.package/MonitorDelay.class/instance/private/schedulerSignalWaitingProcess.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/README.md
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/definition.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/running/tearDown.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/support/busyWaitMilliseconds_.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/tests/testDurationLessThanMaxTicks.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/tests/testDurationMoreThanMaxTicks.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/tests/testForMilliseconds.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/tests/testForSeconds.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/tests/testMillisecondsToGo.st
>�� �� A KernelTests.package/DelayMicrosecondSchedulerTest.class/instance/tests/testTestInterferenceWithSystemTimingSemaphore.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/README.md
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/definition.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/running/tearDown.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/support/busyWaitMilliseconds_.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/tests/testDurationLessThanMaxTicks.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/tests/testDurationMoreThanMaxTicks.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/tests/testForMilliseconds.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/tests/testForSeconds.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/tests/testMillisecondsToGo.st
>�� �� A KernelTests.package/DelayMillisecondSchedulerTest.class/instance/tests/testTestInterferenceWithSystemTimingSemaphore.st
>�� �� R KernelTests.package/DelaySchedulerTest.class/README.md
>�� �� R KernelTests.package/DelaySchedulerTest.class/definition.st
>�� �� R KernelTests.package/DelaySchedulerTest.class/instance/running/tearDown.st
>�� �� R KernelTests.package/DelaySchedulerTest.class/instance/tests/testMaxTickLessThanDuration.st
>�� �� R KernelTests.package/DelaySchedulerTest.class/instance/tests/testMaxTickMoreThanDuration.st
>�� �� R KernelTests.package/DelaySchedulerTest.class/instance/tests/testTestInterferenceWithSystemTimingSemaphore.st
>�� �� R ScriptLoader40.package/ScriptLoader.class/instance/pharo - scripts/script547.st
>�� �� A ScriptLoader40.package/ScriptLoader.class/instance/pharo - scripts/script548.st
>�� �� R ScriptLoader40.package/ScriptLoader.class/instance/pharo - updates/update40547.st
>�� �� A ScriptLoader40.package/ScriptLoader.class/instance/pharo - updates/update40548.st
>�� �� M ScriptLoader40.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
>
>�� Log Message:
>�� -----------
>�� 40548
> 14353 Delay refactoring (part 2) - change from milliseconds to microseconds
>�� �� �� ��https://pharo.fogbugz.com/f/cases/14353
>
> http://files.pharo.org/image/40/40548.zip
it seems to work fine, great work Ben !
Sven