ConcurrentG1RefineThread:: ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread *next, int worker_id_offset, int worker_id) : ConcurrentGCThread(), _worker_id_offset(worker_id_offset), _worker_id(worker_id), _active(false), _next(next), _monitor(NULL), _cg1r(cg1r), _vtime_accum(0.0) { // Each thread has its own monitor. The i-th thread is responsible for signalling // to thread i+1 if the number of buffers in the queue exceeds a threashold for this // thread. Monitors are also used to wake up the threads during termination. // The 0th worker in notified by mutator threads and has a special monitor. // The last worker is used for young gen rset size sampling. if (worker_id > 0) { _monitor = new Monitor(Mutex::nonleaf, "Refinement monitor", true); } else { _monitor = DirtyCardQ_CBL_mon; } initialize(); create_and_start(); }
ConcurrentMarkThread::ConcurrentMarkThread(ConcurrentMark* cm) : ConcurrentGCThread(), _cm(cm), _started(false), _in_progress(false), _vtime_accum(0.0), _vtime_mark_accum(0.0) { create_and_start(); }
ConcurrentMarkThread::ConcurrentMarkThread(ConcurrentMark* cm) : ConcurrentGCThread(), _cm(cm), _state(Idle), _vtime_accum(0.0), _vtime_mark_accum(0.0) { set_name("G1 Main Marker"); create_and_start(); }
ConcurrentMarkThread::ConcurrentMarkThread(ConcurrentMark* cm) : ConcurrentGCThread(), _cm(cm), _started(false), _in_progress(false), _vtime_accum(0.0), _vtime_mark_accum(0.0) { set_name("G1 Main Marker"); create_and_start(); }
G1StringDedupThread::G1StringDedupThread() : ConcurrentGCThread() { set_name("String Deduplication Thread"); create_and_start(); }
ConcurrentZFThread::ConcurrentZFThread() : ConcurrentGCThread() { create_and_start(); }
G1StringDedupThread::G1StringDedupThread() : ConcurrentGCThread() { set_name("G1 StrDedup"); create_and_start(); }