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 >> >> >> > >
