On Fri, Jul 22, 2016 at 4:42 AM, Mariano Martinez Peck <
marianop...@gmail.com> wrote:

>
>
> On Sun, Jul 17, 2016 at 6:46 AM, Ben Coman <b...@openinworld.com> 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]  :) :)

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

Reply via email to