< prev index next >

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

Print this page
rev 10297 : [mq]: webrev.01
rev 10298 : [mq]: webrev.02

*** 33,44 **** protected: bool volatile _should_terminate; bool _has_terminated; ! // Create and start the thread (setting it's priority high.) ! void create_and_start(); // Do initialization steps in the thread: record stack base and size, // init thread local storage, set JNI handle block. void initialize_in_thread(); --- 33,44 ---- protected: bool volatile _should_terminate; bool _has_terminated; ! // Create and start the thread (setting it's priority.) ! void create_and_start(ThreadPriority prio = NearMaxPriority); // Do initialization steps in the thread: record stack base and size, // init thread local storage, set JNI handle block. void initialize_in_thread();
*** 47,61 **** --- 47,72 ---- // Record that the current thread is terminating, and will do more // concurrent work. void terminate(); + // Do the specific GC work. Called by run() after initialization complete. + virtual void run_service() = 0; + + // Shut down the specific GC work. Called by stop() as part of termination protocol. + virtual void stop_service() = 0; + 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 // manipulating Java monitors, in particular, currently for // manipulating the pending_list_lock. XXX
< prev index next >