src/share/vm/memory/genCollectedHeap.hpp

changeset 6992
2c6ef90f030a
parent 6978
30c99d8e0f02
child 7070
439f0d76cff3
     1.1 --- a/src/share/vm/memory/genCollectedHeap.hpp	Tue Jul 01 09:03:55 2014 +0200
     1.2 +++ b/src/share/vm/memory/genCollectedHeap.hpp	Mon Jul 07 10:12:40 2014 +0200
     1.3 @@ -78,9 +78,9 @@
     1.4    unsigned int _full_collections_completed;
     1.5  
     1.6    // Data structure for claiming the (potentially) parallel tasks in
     1.7 -  // (gen-specific) strong roots processing.
     1.8 -  SubTasksDone* _gen_process_strong_tasks;
     1.9 -  SubTasksDone* gen_process_strong_tasks() { return _gen_process_strong_tasks; }
    1.10 +  // (gen-specific) roots processing.
    1.11 +  SubTasksDone* _gen_process_roots_tasks;
    1.12 +  SubTasksDone* gen_process_roots_tasks() { return _gen_process_roots_tasks; }
    1.13  
    1.14    // In block contents verification, the number of header words to skip
    1.15    NOT_PRODUCT(static size_t _skip_header_HeapWords;)
    1.16 @@ -411,18 +411,30 @@
    1.17    // The "so" argument determines which of the roots
    1.18    // the closure is applied to:
    1.19    // "SO_None" does none;
    1.20 -  // "SO_AllClasses" applies the closure to all entries in the SystemDictionary;
    1.21 -  // "SO_SystemClasses" to all the "system" classes and loaders;
    1.22 -  // "SO_Strings" applies the closure to all entries in the StringTable.
    1.23 -  void gen_process_strong_roots(int level,
    1.24 -                                bool younger_gens_as_roots,
    1.25 -                                // The remaining arguments are in an order
    1.26 -                                // consistent with SharedHeap::process_strong_roots:
    1.27 -                                bool activate_scope,
    1.28 -                                SharedHeap::ScanningOption so,
    1.29 -                                OopsInGenClosure* not_older_gens,
    1.30 -                                OopsInGenClosure* older_gens,
    1.31 -                                KlassClosure* klass_closure);
    1.32 + private:
    1.33 +  void gen_process_roots(int level,
    1.34 +                         bool younger_gens_as_roots,
    1.35 +                         bool activate_scope,
    1.36 +                         SharedHeap::ScanningOption so,
    1.37 +                         OopsInGenClosure* not_older_gens,
    1.38 +                         OopsInGenClosure* weak_roots,
    1.39 +                         OopsInGenClosure* older_gens,
    1.40 +                         CLDClosure* cld_closure,
    1.41 +                         CLDClosure* weak_cld_closure,
    1.42 +                         CodeBlobClosure* code_closure);
    1.43 +
    1.44 + public:
    1.45 +  static const bool StrongAndWeakRoots = false;
    1.46 +  static const bool StrongRootsOnly    = true;
    1.47 +
    1.48 +  void gen_process_roots(int level,
    1.49 +                         bool younger_gens_as_roots,
    1.50 +                         bool activate_scope,
    1.51 +                         SharedHeap::ScanningOption so,
    1.52 +                         bool only_strong_roots,
    1.53 +                         OopsInGenClosure* not_older_gens,
    1.54 +                         OopsInGenClosure* older_gens,
    1.55 +                         CLDClosure* cld_closure);
    1.56  
    1.57    // Apply "root_closure" to all the weak roots of the system.
    1.58    // These include JNI weak roots, string table,

mercurial