[squeak-dev] Timing riddle
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Tue Dec 4 19:14:05 UTC 2012
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)
- 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
|