--- a/src/hotspot/share/gc/parallel/pcTasks.cpp Fri Aug 16 09:18:19 2019 +0200
+++ b/src/hotspot/share/gc/parallel/pcTasks.cpp Fri Aug 16 09:18:23 2019 +0200
@@ -48,116 +48,6 @@
#include "utilities/stack.inline.hpp"
//
-// ThreadRootsMarkingTask
-//
-
-void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) {
- assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
-
- ResourceMark rm;
-
- ParCompactionManager* cm =
- ParCompactionManager::gc_thread_compaction_manager(which);
-
- PCMarkAndPushClosure mark_and_push_closure(cm);
- MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);
-
- _thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs);
-
- // Do the real work
- cm->follow_marking_stacks();
-}
-
-
-void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) {
- assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
-
- ParCompactionManager* cm =
- ParCompactionManager::gc_thread_compaction_manager(which);
- PCMarkAndPushClosure mark_and_push_closure(cm);
-
- switch (_root_type) {
- case universe:
- Universe::oops_do(&mark_and_push_closure);
- break;
-
- case jni_handles:
- JNIHandles::oops_do(&mark_and_push_closure);
- break;
-
- case threads:
- {
- ResourceMark rm;
- MarkingCodeBlobClosure each_active_code_blob(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);
- Threads::oops_do(&mark_and_push_closure, &each_active_code_blob);
- }
- break;
-
- case object_synchronizer:
- ObjectSynchronizer::oops_do(&mark_and_push_closure);
- break;
-
- case management:
- Management::oops_do(&mark_and_push_closure);
- break;
-
- case jvmti:
- JvmtiExport::oops_do(&mark_and_push_closure);
- break;
-
- case system_dictionary:
- SystemDictionary::oops_do(&mark_and_push_closure);
- break;
-
- case class_loader_data: {
- CLDToOopClosure cld_closure(&mark_and_push_closure, ClassLoaderData::_claim_strong);
- ClassLoaderDataGraph::always_strong_cld_do(&cld_closure);
- }
- break;
-
- case code_cache:
- // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
- //ScavengableNMethods::scavengable_nmethods_do(CodeBlobToOopClosure(&mark_and_push_closure));
- AOTLoader::oops_do(&mark_and_push_closure);
- break;
-
- default:
- fatal("Unknown root type");
- }
-
- // Do the real work
- cm->follow_marking_stacks();
-}
-
-
-//
-// StealMarkingTask
-//
-
-StealMarkingTask::StealMarkingTask(ParallelTaskTerminator* t) :
- _terminator(t) {}
-
-void StealMarkingTask::do_it(GCTaskManager* manager, uint which) {
- assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
-
- ParCompactionManager* cm =
- ParCompactionManager::gc_thread_compaction_manager(which);
-
- oop obj = NULL;
- ObjArrayTask task;
- do {
- while (ParCompactionManager::steal_objarray(which, task)) {
- cm->follow_array((objArrayOop)task.obj(), task.index());
- cm->follow_marking_stacks();
- }
- while (ParCompactionManager::steal(which, obj)) {
- cm->follow_contents(obj);
- cm->follow_marking_stacks();
- }
- } while (!terminator()->offer_termination());
-}
-
-//
// CompactionWithStealingTask
//