--- a/src/hotspot/share/gc/g1/g1RootProcessor.cpp Mon Oct 30 08:34:54 2017 +0100
+++ b/src/hotspot/share/gc/g1/g1RootProcessor.cpp Tue Nov 14 11:33:23 2017 +0100
@@ -37,6 +37,7 @@
#include "gc/g1/g1RootClosures.hpp"
#include "gc/g1/g1RootProcessor.hpp"
#include "gc/g1/heapRegion.inline.hpp"
+#include "gc/shared/weakProcessor.hpp"
#include "memory/allocation.inline.hpp"
#include "runtime/mutex.hpp"
#include "services/management.hpp"
@@ -319,6 +320,16 @@
}
}
+void G1RootProcessor::process_full_gc_weak_roots(OopClosure* oops) {
+ if (!_process_strong_tasks.is_task_claimed(G1RP_PS_refProcessor_oops_do)) {
+ _g1h->ref_processor_stw()->weak_oops_do(oops);
+ }
+
+ if (!_process_strong_tasks.is_task_claimed(G1RP_PS_weakProcessor_oops_do)) {
+ WeakProcessor::oops_do(oops);
+ }
+}
+
uint G1RootProcessor::n_workers() const {
return _srs.n_threads();
}