--- old/src/share/vm/gc/shared/concurrentGCThread.hpp 2016-02-24 13:41:11.537417945 -0500 +++ new/src/share/vm/gc/shared/concurrentGCThread.hpp 2016-02-24 13:41:11.376419958 -0500 @@ -48,12 +48,27 @@ // Record that the current thread is terminating, and will do more // concurrent work. void terminate(); + + // Most implementations of ConcurrentGCThread use ConcurrentGCThread's termination protocol, + // run(), and stop() methods, and provide specific implementations of run_service() and stop_service. + // Otherwise run_service() and stop_service should not be called.) + + // Do the specific GC work. Called by run() after initialization complete. + virtual void run_service() { ShouldNotReachHere(); } + + // Shut down the specific GC work. Called by stop() as part of termination protocol. + virtual void stop_service() { ShouldNotReachHere(); } public: ConcurrentGCThread(); // Tester bool is_ConcurrentGC_thread() const { return true; } + + virtual void run(); + + // shutdown following termination protocol + virtual void stop(); }; // The SurrogateLockerThread is used by concurrent GC threads for