--- old/src/share/vm/memory/sharedHeap.hpp 2015-02-18 13:24:53.315899058 +0100 +++ new/src/share/vm/memory/sharedHeap.hpp 2015-02-18 13:24:53.251897159 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -103,7 +103,25 @@ friend class VM_GC_Operation; friend class VM_CGC_Operation; +public: + // The set of potentially parallel tasks in root scanning. + enum SH_process_roots_tasks { + SH_PS_Threads_oops_do, + SH_PS_StringTable_oops_do, + SH_PS_Universe_oops_do, + SH_PS_JNIHandles_oops_do, + SH_PS_ObjectSynchronizer_oops_do, + SH_PS_FlatProfiler_oops_do, + SH_PS_Management_oops_do, + SH_PS_SystemDictionary_oops_do, + SH_PS_ClassLoaderDataGraph_oops_do, + SH_PS_jvmti_oops_do, + SH_PS_CodeCache_oops_do, + // Leave this one last. + SH_PS_NumElements + }; + static const char* ext_roots_task_str(uint task); private: // For claiming strong_roots tasks. SubTasksDone* _process_strong_tasks; @@ -240,17 +258,20 @@ OopClosure* weak_roots, CLDClosure* strong_cld_closure, CLDClosure* weak_cld_closure, - CodeBlobClosure* code_roots); + CodeBlobClosure* code_roots, + PhaseTimeData* phase_durations = NULL); void process_all_roots(bool activate_scope, ScanningOption so, OopClosure* roots, CLDClosure* cld_closure, - CodeBlobClosure* code_roots); + CodeBlobClosure* code_roots, + PhaseTimeData* phase_durations = NULL); void process_strong_roots(bool activate_scope, ScanningOption so, OopClosure* roots, CLDClosure* cld_closure, - CodeBlobClosure* code_roots); + CodeBlobClosure* code_roots, + PhaseTimeData* phase_durations = NULL); // Apply "root_closure" to the JNI weak roots..