Questions on concurrent class unloading
Zhengyu Gu
zgu at redhat.com
Mon Apr 8 15:27:26 UTC 2019
Hi,
I am studying concurrent class unloading in ZGC, it looks to me that
nothing gets unlinked (ZNMethod::unlink())and purged (ZNMethod::purge()).
Inside ZNMethodUnlinkClosure::do_nmethod() [1]
It appears that nm->is_unloading() can never be true. Otherwise,
assertion should fail inside nm->flush_dependencies(false), cause
neither Universe::heap()->is_gc_active() (true for STW GC) nor
is_ConcurrentGC_thread() is true.
Similar with ZNMethodPurgeClosure [2] , nm->make_unloaded() has similar
assertion.
What did I miss?
Thanks,
-Zhengyu
[1]
http://hg.openjdk.java.net/jdk/jdk/file/542735f2a53e/src/hotspot/share/gc/z/zNMethod.cpp#l279
[2]
http://hg.openjdk.java.net/jdk/jdk/file/542735f2a53e/src/hotspot/share/gc/z/zNMethod.cpp#l357
More information about the zgc-dev
mailing list