diff a/src/hotspot/share/gc/z/zWeakRootsProcessor.cpp b/src/hotspot/share/gc/z/zWeakRootsProcessor.cpp --- a/src/hotspot/share/gc/z/zWeakRootsProcessor.cpp +++ b/src/hotspot/share/gc/z/zWeakRootsProcessor.cpp @@ -60,10 +60,14 @@ public: ZProcessConcurrentWeakRootsTask() : ZTask("ZProcessConccurentWeakRootsTask"), _concurrent_weak_roots() {} + ~ZProcessConcurrentWeakRootsTask() { + _concurrent_weak_roots.notify(); + } + virtual void work() { ZPhantomCleanOopClosure cl; _concurrent_weak_roots.oops_do(&cl); } };