> On 22 Jul 2016, at 07:26, Ben Coman <[email protected]> wrote: > > > > On Fri, Jul 22, 2016 at 4:42 AM, Mariano Martinez Peck <[email protected] > <mailto:[email protected]>> wrote: > > > On Sun, Jul 17, 2016 at 6:46 AM, Ben Coman <[email protected] > <mailto:[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 > <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]. > >
