34 for (uint index = 0; index < size; index ++) {
35 ShenandoahObjToScanQueue* q = queue(index);
36 assert(q != NULL, "Sanity");
37 q->clear();
38 }
39 }
40
41 bool ShenandoahObjToScanQueueSet::is_empty() {
42 uint size = GenericTaskQueueSet<ShenandoahObjToScanQueue, mtGC>::size();
43 for (uint index = 0; index < size; index ++) {
44 ShenandoahObjToScanQueue* q = queue(index);
45 assert(q != NULL, "Sanity");
46 if (!q->is_empty()) {
47 return false;
48 }
49 }
50 return true;
51 }
52
53 ShenandoahTaskTerminator::ShenandoahTaskTerminator(uint n_threads, TaskQueueSetSuper* queue_set) :
54 _terminator(new OWSTTaskTerminator(n_threads, queue_set)) { }
55
56 ShenandoahTaskTerminator::~ShenandoahTaskTerminator() {
57 assert(_terminator != NULL, "Invariant");
58 delete _terminator;
59 }
60
61 #if TASKQUEUE_STATS
62 void ShenandoahObjToScanQueueSet::print_taskqueue_stats_hdr(outputStream* const st) {
63 st->print_raw_cr("GC Task Stats");
64 st->print_raw("thr "); TaskQueueStats::print_header(1, st); st->cr();
65 st->print_raw("--- "); TaskQueueStats::print_header(2, st); st->cr();
66 }
67
68 void ShenandoahObjToScanQueueSet::print_taskqueue_stats() const {
69 if (!log_develop_is_enabled(Trace, gc, task, stats)) {
70 return;
71 }
72 Log(gc, task, stats) log;
73 ResourceMark rm;
74 LogStream ls(log.trace());
75 outputStream* st = &ls;
76 print_taskqueue_stats_hdr(st);
77
78 ShenandoahObjToScanQueueSet* queues = const_cast<ShenandoahObjToScanQueueSet*>(this);
79 TaskQueueStats totals;
|
34 for (uint index = 0; index < size; index ++) {
35 ShenandoahObjToScanQueue* q = queue(index);
36 assert(q != NULL, "Sanity");
37 q->clear();
38 }
39 }
40
41 bool ShenandoahObjToScanQueueSet::is_empty() {
42 uint size = GenericTaskQueueSet<ShenandoahObjToScanQueue, mtGC>::size();
43 for (uint index = 0; index < size; index ++) {
44 ShenandoahObjToScanQueue* q = queue(index);
45 assert(q != NULL, "Sanity");
46 if (!q->is_empty()) {
47 return false;
48 }
49 }
50 return true;
51 }
52
53 ShenandoahTaskTerminator::ShenandoahTaskTerminator(uint n_threads, TaskQueueSetSuper* queue_set) :
54 _terminator(n_threads, queue_set) { }
55
56 #if TASKQUEUE_STATS
57 void ShenandoahObjToScanQueueSet::print_taskqueue_stats_hdr(outputStream* const st) {
58 st->print_raw_cr("GC Task Stats");
59 st->print_raw("thr "); TaskQueueStats::print_header(1, st); st->cr();
60 st->print_raw("--- "); TaskQueueStats::print_header(2, st); st->cr();
61 }
62
63 void ShenandoahObjToScanQueueSet::print_taskqueue_stats() const {
64 if (!log_develop_is_enabled(Trace, gc, task, stats)) {
65 return;
66 }
67 Log(gc, task, stats) log;
68 ResourceMark rm;
69 LogStream ls(log.trace());
70 outputStream* st = &ls;
71 print_taskqueue_stats_hdr(st);
72
73 ShenandoahObjToScanQueueSet* queues = const_cast<ShenandoahObjToScanQueueSet*>(this);
74 TaskQueueStats totals;
|