Thanks Max for reviewing it :) On Fri, Jul 22, 2016 at 11:08 AM, Max Leske <[email protected]> wrote:
> > On 22 Jul 2016, at 07:26, Ben Coman <[email protected] > <[email protected]>> wrote: > > > > On Fri, Jul 22, 2016 at 4:42 AM, Mariano Martinez Peck < > [email protected]> wrote: > >> >> >> On Sun, Jul 17, 2016 at 6:46 AM, Ben Coman <[email protected]> wrote: >> >> >>> Do you have some test code or a test image I could run to reproduce >>> the problem? >>> >> >> >> The problem is that I cannot reproduce it immediately. It takes me some >> days and likely some image save and start again until I reproduce it. >> > > Could you try > How about something that invokes > > >> >> >>> >>> Now I have one thing for you to try. In the move of DelaySchedulerXxx >>> from milliseconds to microseconds, the code for dealing with clock >>> wrap-around was removed, but I wonder if it was also covering clock >>> jitter as a side effect. Could you try again the SpinScheduler but >>> restore this code... >>> >>> From handletTimerEvent... >>> "Check for clock wrap-around." >>> millisecondNowTick < activeDelayStartTime ifTrue: [ >>> "clock wrapped" >>> self saveResumptionTimes. >>> self restoreResumptionTimes ]. >>> activeDelayStartTime := millisecondNowTick. >>> >>> From runTimerEventLoop... >>> Time millisecondClockValue < millisecondNowTick >>> ifTrue:[ timingSemaphore signal ]. "retry" >>> >>> From startup... >>> activeDelayStartTime := Time millisecondClockValue. >>> >>> >> OK, I put back the code into the spin scheduler. Then I kept using >> milisecond one until I finished the changes. Then I saved image and switch >> to spin one: the image hungs. I cannot even interrupt it. I attach my >> modifications. >> Do they look correct? >> > > I confirm that locked my image also. > > One change of milli to micro was missed at the bottom of > runTimeEventLoop... > That is... > Time millisecondClockValue < microsecondNowTick > to... > Time microsecondClockValue < microsecondNowTick > > (just a case of domestic blindness) [1] :) :) > > > And I reviewed your code and missed it… > > > cheers -ben > > [1] http://www.urbandictionary.com/define.php?term=domestic%20blindness > > P.S. A trick to debug delays is to bypass interCycleDelay by at the top of > it putting... > true ifTrue: [^self]. > > > > -- Mariano http://marianopeck.wordpress.com
