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