[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