Marcus Denker wrote:
On 02 Nov 2014, at 19:19, Ben Coman <[email protected]> wrote:


ImageCleaner>>cleanUpForRelease calls >>cleanUpMethods which calls
Delay class>>startTimerEventLoop.   I thought this would have started with a 
clean/empty suspended delays heap, but it carries forward
the old SuspendedDelays.

So if there happened to be a suspended delay expiring in a month's time,
that would not be affected by ImageCleaner and would end up in the release.

I believe the correct behaviour would be for ImageCleaner to produce a clean/empty 
suspended delays, and so that no waiting processing get stuck, signal any remaining 
suspended delays when the timer event loop is stopped by Delay 
class>>stopTimerEventLoop.

Any objections?


No, sounds good.

#cleanUpMethods is supposed to re-start all methods that hold on to existing 
blocks, so that the compiled methods they hold on to get GCed.
(e.g. very important when compiler changes are done to not have old methods 
around).

At some point I added it to the #cleanUpForRelease as it does not hurt…
(and #cleanUpForRelease we all after every update as the final goal is to have 
the CI build be the release artefact unchannged)

        Marcus





Thanks. I've added that on top of the slice Nicolai reviewed for my Delay refactoring @ https://pharo.fogbugz.com/default.asp?14261.
cheers -ben



Reply via email to