On 24/11/2021 12:19, Michał Kłeczek wrote:
Hi Alan,

(Disregard previous message - fat fingers)

Attached is a first draft of the patch:

1. Controller is created upon ML construction and returned from static ML.defineModules methods. 2. Created two controller liveness tests (they rely on System.gc() though - not sure if there are some tricks to test it reliably).

I read your mail about "smart proxy" classes and lazy downloading of modules. I don't have an opinion at this time on whether this is worth doing or not.

If you want to experiment with patches then add a volatile field to ML and only set it when VM.isBooted() is true. In order words, let the ML.Controller for the boot layer be GC'ed as it is now (it would be attractive nuisance to keep it alive). There are many tests in the test/jdk tree that check that a weak ref is cleared, there is also some test infrastructure to help, so you might want to look at those.

-Alan

Reply via email to