[squeak-dev] Timing riddle
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Tue Dec 4 19:15:16 UTC 2012
2012/12/4 Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
> Look at implementation of #valueWithin:onTimeout:
>
> It relies on signalling a TimeOut to activeProcess...
> So it is not re-entrant :
> - the first TimeOut is signalled by inner watchdog after 2 seconds.
> - it is caught by inner valueWithin:onTimeout: wich starts the second
> inner iteration
> - the second TimeOut is signalled by inner watchdog after 3 seconds (1
> second later)
Err the second TimeOut is signalled by outer watchdog
(tourne ta langue sept fois dans ta bouche !)
> - it is caught by inner valueWithin:onTimeout: wich starts the third
> inner iteration
> - the third TimeOut is signalled by inner watchdog 2 seconds later
> (after 5 seconds)
>
> Maybe #valueWithin:onTimeout: could be rewritten susing
> Semaphore>>waitTimeoutMSecs:
>
> Nicolas
>
>
>
> 2012/12/4 Stéphane Rollandin <lecteur at zogotounga.net>:
>> [
>> [5 seconds asDelay wait]
>> valueWithin: 2 seconds onTimeout: []
>> ]
>> durationToRun
>>
>> --> 0:00:00:02.001
>> so far so good
>>
>>
>> [
>> 3 timesRepeat: [
>> [5 seconds asDelay wait]
>> valueWithin: 2 seconds onTimeout: []]
>> ]
>> durationToRun
>>
>> --> 0:00:00:06.001
>> seems ok
>>
>>
>> [
>> [
>> [5 seconds asDelay wait]
>> valueWithin: 2 seconds onTimeout: []
>> ]
>> valueWithin: 3 seconds onTimeout: []
>> ]
>> durationToRun
>>
>> --> 0:00:00:02.001
>> alright
>>
>>
>> BUT:
>>
>>
>> [
>> [
>> 3 timesRepeat: [
>> [5 seconds asDelay wait]
>> valueWithin: 2 seconds onTimeout: []]
>> ]
>> valueWithin: 3 seconds onTimeout: []
>> ]
>> durationToRun
>>
>> --> 0:00:00:05
>>
>> ?
>>
>>
>> Stef
>>
More information about the Squeak-dev
mailing list
|