Status: FixProposed
Owner: [email protected]
CC: [email protected], [email protected]
Labels: Type-ReportDefect
New issue 3986 by [email protected]: Bug with Delay during clock
rollover
http://code.google.com/p/pharo/issues/detail?id=3986
I have identified a bug with Delays that are scheduled close to the
millisecond clock rollover that can occur when other delays expire around
the same time.
The issue appears to be that when scheduling a delay, the resumption time
gets set and, before the AccessProtect critical block can be entered, the
TimingSemaphore gets signalled, causing the timer process to handle an
expired delay.
If the clock rolls over before the resumption of the process that was
scheduling the original delay, that delay gets scheduled with the
resumption time that was determined prior to the clock rollover, hence a
delay of around 6 days.
A fix is proposed in the attached change set, tested empirically during a
rollover with the result of no "rogue" delays - not conclusive but in our
production code it appears the problem is resolved.
Regards, Gary