< prev index next >

src/share/vm/gc/shared/referenceProcessor.hpp

Print this page
rev 10739 : 8153745: Avoid spawning G1ParPreserveCMReferentsTask when there is no work to be done
Reviewed-by:


 395   void set_mt_discovery(bool mt) { _discovery_is_mt = mt; }
 396 
 397   // Whether we are in a phase when _processing_ is MT.
 398   bool processing_is_mt() const { return _processing_is_mt; }
 399   void set_mt_processing(bool mt) { _processing_is_mt = mt; }
 400 
 401   // whether all enqueueing of weak references is complete
 402   bool enqueuing_is_done()  { return _enqueuing_is_done; }
 403   void set_enqueuing_is_done(bool v) { _enqueuing_is_done = v; }
 404 
 405   // iterate over oops
 406   void weak_oops_do(OopClosure* f);       // weak roots
 407 
 408   // Balance each of the discovered lists.
 409   void balance_all_queues();
 410   void verify_list(DiscoveredList& ref_list);
 411 
 412   // Discover a Reference object, using appropriate discovery criteria
 413   bool discover_reference(oop obj, ReferenceType rt);
 414 



 415   // Process references found during GC (called by the garbage collector)
 416   ReferenceProcessorStats
 417   process_discovered_references(BoolObjectClosure*           is_alive,
 418                                 OopClosure*                  keep_alive,
 419                                 VoidClosure*                 complete_gc,
 420                                 AbstractRefProcTaskExecutor* task_executor,
 421                                 GCTimer *gc_timer);
 422 
 423   // Enqueue references at end of GC (called by the garbage collector)
 424   bool enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL);
 425 
 426   // If a discovery is in process that is being superceded, abandon it: all
 427   // the discovered lists will be empty, and all the objects on them will
 428   // have NULL discovered fields.  Must be called only at a safepoint.
 429   void abandon_partial_discovery();
 430 
 431   // debugging
 432   void verify_no_references_recorded() PRODUCT_RETURN;
 433   void verify_referent(oop obj)        PRODUCT_RETURN;
 434 };




 395   void set_mt_discovery(bool mt) { _discovery_is_mt = mt; }
 396 
 397   // Whether we are in a phase when _processing_ is MT.
 398   bool processing_is_mt() const { return _processing_is_mt; }
 399   void set_mt_processing(bool mt) { _processing_is_mt = mt; }
 400 
 401   // whether all enqueueing of weak references is complete
 402   bool enqueuing_is_done()  { return _enqueuing_is_done; }
 403   void set_enqueuing_is_done(bool v) { _enqueuing_is_done = v; }
 404 
 405   // iterate over oops
 406   void weak_oops_do(OopClosure* f);       // weak roots
 407 
 408   // Balance each of the discovered lists.
 409   void balance_all_queues();
 410   void verify_list(DiscoveredList& ref_list);
 411 
 412   // Discover a Reference object, using appropriate discovery criteria
 413   bool discover_reference(oop obj, ReferenceType rt);
 414 
 415   // Has discovered references that need handling
 416   bool has_discovered_references();
 417 
 418   // Process references found during GC (called by the garbage collector)
 419   ReferenceProcessorStats
 420   process_discovered_references(BoolObjectClosure*           is_alive,
 421                                 OopClosure*                  keep_alive,
 422                                 VoidClosure*                 complete_gc,
 423                                 AbstractRefProcTaskExecutor* task_executor,
 424                                 GCTimer *gc_timer);
 425 
 426   // Enqueue references at end of GC (called by the garbage collector)
 427   bool enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL);
 428 
 429   // If a discovery is in process that is being superceded, abandon it: all
 430   // the discovered lists will be empty, and all the objects on them will
 431   // have NULL discovered fields.  Must be called only at a safepoint.
 432   void abandon_partial_discovery();
 433 
 434   // debugging
 435   void verify_no_references_recorded() PRODUCT_RETURN;
 436   void verify_referent(oop obj)        PRODUCT_RETURN;
 437 };


< prev index next >