In doing some planned cleanup to remove deprecated code that could not be
removed before integration, I picked up a couple of glitches.  In
particular, each subclass needs its own custom #shutdown since the
primitives are different.  You can see above that #shutdown has been
inherited by DelayMicrosecondScheduler.  I've corrected that in
https://pharo.fogbugz.com/default.asp?15110 - and that may co-incidentally
solve the above problem - but I'll dig deeper in parallel with others
checking 15110.

cheers -ben

On Thu, Mar 12, 2015 at 10:34 PM, stepharo <[email protected]> wrote:

>  Ben
>
> thanks a lot for your effort!
> I would love to get a little description of the new architecture.
>
> Stef
>
>
>
>  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 <[email protected]>
> wrote:
>
>>
>> > On 10 Mar 2015, at 16:31, GitHub <[email protected]> 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 <[email protected]>
>> >  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
>>
>>  a distinctive four-note "short-short-short-long" motif twice ;-)
>>
>> it seems to work fine, great work Ben !
>>
>> Sven
>>
>>
>>
>
>

Reply via email to