src/share/vm/gc_implementation/g1/concurrentMark.hpp

Print this page

        

*** 352,363 **** friend class CMConcurrentMarkingTask; friend class G1ParNoteEndTask; friend class CalcLiveObjectsClosure; friend class G1CMRefProcTaskProxy; friend class G1CMRefProcTaskExecutor; ! friend class G1CMParKeepAliveAndDrainClosure; ! friend class G1CMParDrainMarkingStackClosure; protected: ConcurrentMarkThread* _cmThread; // the thread doing the work G1CollectedHeap* _g1h; // the heap. uint _parallel_marking_threads; // the number of marking --- 352,363 ---- friend class CMConcurrentMarkingTask; friend class G1ParNoteEndTask; friend class CalcLiveObjectsClosure; friend class G1CMRefProcTaskProxy; friend class G1CMRefProcTaskExecutor; ! friend class G1CMKeepAliveAndDrainClosure; ! friend class G1CMDrainMarkingStackClosure; protected: ConcurrentMarkThread* _cmThread; // the thread doing the work G1CollectedHeap* _g1h; // the heap. uint _parallel_marking_threads; // the number of marking
*** 468,480 **** // We do this after we're done with marking so that the marking data // structures are initialised to a sensible and predictable state. void set_non_marking_state(); // It should be called to indicate which phase we're in (concurrent // mark or remark) and how many threads are currently active. ! void set_phase(uint active_tasks, bool concurrent); // prints all gathered CM-related statistics void print_stats(); bool cleanup_list_is_empty() { --- 468,483 ---- // We do this after we're done with marking so that the marking data // structures are initialised to a sensible and predictable state. void set_non_marking_state(); + // Called to indicate how many threads are currently active. + void set_concurrency(uint active_tasks); + // It should be called to indicate which phase we're in (concurrent // mark or remark) and how many threads are currently active. ! void set_concurrency_and_phase(uint active_tasks, bool concurrent); // prints all gathered CM-related statistics void print_stats(); bool cleanup_list_is_empty() {
*** 1115,1125 **** // The main method of this class which performs a marking step // trying not to exceed the given duration. However, it might exit // prematurely, according to some conditions (i.e. SATB buffers are // available for processing). ! void do_marking_step(double target_ms, bool do_stealing, bool do_termination); // These two calls start and stop the timer void record_start_time() { _elapsed_time_ms = os::elapsedTime() * 1000.0; } --- 1118,1130 ---- // The main method of this class which performs a marking step // trying not to exceed the given duration. However, it might exit // prematurely, according to some conditions (i.e. SATB buffers are // available for processing). ! void do_marking_step(double target_ms, ! bool do_termination, ! bool is_serial); // These two calls start and stop the timer void record_start_time() { _elapsed_time_ms = os::elapsedTime() * 1000.0; }