< prev index next >
src/share/vm/gc/shared/collectedHeap.hpp
Print this page
rev 13053 : 8180932: Parallelize safepoint cleanup
Summary: Provide infrastructure to do safepoint cleanup tasks using parallel worker threads
Reviewed-by: dholmes, rehn
*** 46,55 ****
--- 46,56 ----
class GCTracer;
class MetaspaceSummary;
class Thread;
class ThreadClosure;
class VirtualSpaceSummary;
+ class WorkGang;
class nmethod;
class GCMessage : public FormatBuffer<1024> {
public:
bool is_before;
*** 602,611 ****
--- 603,622 ----
//
// Returns true when the phase is reached. Returns false for an
// unknown phase. The default implementation returns false.
virtual bool request_concurrent_phase(const char* phase);
+ // Provides a thread pool to SafepointSynchronize to use
+ // for parallel safepoint cleanup.
+ // GCs that use a GC worker thread pool may want to share
+ // it for use during safepoint cleanup. This is only possible
+ // if the GC can pause and resume concurrent work (e.g. G1
+ // concurrent marking) for an intermittent non-GC safepoint.
+ // If this method returns NULL, SafepointSynchronize will
+ // perform cleanup tasks serially in the VMThread.
+ virtual WorkGang* get_safepoint_workers() { return NULL; }
+
// Non product verification and debugging.
#ifndef PRODUCT
// Support for PromotionFailureALot. Return true if it's time to cause a
// promotion failure. The no-argument version uses
// this->_promotion_failure_alot_count as the counter.
< prev index next >