src/share/vm/memory/genCollectedHeap.hpp

changeset 6992
2c6ef90f030a
parent 6978
30c99d8e0f02
child 7070
439f0d76cff3
equal deleted inserted replaced
6991:882004b9e7e1 6992:2c6ef90f030a
76 76
77 // In support of ExplicitGCInvokesConcurrent functionality 77 // In support of ExplicitGCInvokesConcurrent functionality
78 unsigned int _full_collections_completed; 78 unsigned int _full_collections_completed;
79 79
80 // Data structure for claiming the (potentially) parallel tasks in 80 // Data structure for claiming the (potentially) parallel tasks in
81 // (gen-specific) strong roots processing. 81 // (gen-specific) roots processing.
82 SubTasksDone* _gen_process_strong_tasks; 82 SubTasksDone* _gen_process_roots_tasks;
83 SubTasksDone* gen_process_strong_tasks() { return _gen_process_strong_tasks; } 83 SubTasksDone* gen_process_roots_tasks() { return _gen_process_roots_tasks; }
84 84
85 // In block contents verification, the number of header words to skip 85 // In block contents verification, the number of header words to skip
86 NOT_PRODUCT(static size_t _skip_header_HeapWords;) 86 NOT_PRODUCT(static size_t _skip_header_HeapWords;)
87 87
88 protected: 88 protected:
409 // explicitly mark reachable objects in younger generations, to avoid 409 // explicitly mark reachable objects in younger generations, to avoid
410 // excess storage retention.) 410 // excess storage retention.)
411 // The "so" argument determines which of the roots 411 // The "so" argument determines which of the roots
412 // the closure is applied to: 412 // the closure is applied to:
413 // "SO_None" does none; 413 // "SO_None" does none;
414 // "SO_AllClasses" applies the closure to all entries in the SystemDictionary; 414 private:
415 // "SO_SystemClasses" to all the "system" classes and loaders; 415 void gen_process_roots(int level,
416 // "SO_Strings" applies the closure to all entries in the StringTable. 416 bool younger_gens_as_roots,
417 void gen_process_strong_roots(int level, 417 bool activate_scope,
418 bool younger_gens_as_roots, 418 SharedHeap::ScanningOption so,
419 // The remaining arguments are in an order 419 OopsInGenClosure* not_older_gens,
420 // consistent with SharedHeap::process_strong_roots: 420 OopsInGenClosure* weak_roots,
421 bool activate_scope, 421 OopsInGenClosure* older_gens,
422 SharedHeap::ScanningOption so, 422 CLDClosure* cld_closure,
423 OopsInGenClosure* not_older_gens, 423 CLDClosure* weak_cld_closure,
424 OopsInGenClosure* older_gens, 424 CodeBlobClosure* code_closure);
425 KlassClosure* klass_closure); 425
426 public:
427 static const bool StrongAndWeakRoots = false;
428 static const bool StrongRootsOnly = true;
429
430 void gen_process_roots(int level,
431 bool younger_gens_as_roots,
432 bool activate_scope,
433 SharedHeap::ScanningOption so,
434 bool only_strong_roots,
435 OopsInGenClosure* not_older_gens,
436 OopsInGenClosure* older_gens,
437 CLDClosure* cld_closure);
426 438
427 // Apply "root_closure" to all the weak roots of the system. 439 // Apply "root_closure" to all the weak roots of the system.
428 // These include JNI weak roots, string table, 440 // These include JNI weak roots, string table,
429 // and referents of reachable weak refs. 441 // and referents of reachable weak refs.
430 void gen_process_weak_roots(OopClosure* root_closure); 442 void gen_process_weak_roots(OopClosure* root_closure);

mercurial