< prev index next >

src/share/vm/gc/shared/gcTraceSend.cpp

Print this page

        

*** 418,450 **** } class PhaseSender : public PhaseVisitor { public: template<typename T> ! void send_phase(PausePhase* pause) { T event(UNTIMED); if (event.should_commit()) { event.set_gcId(GCId::current()); ! event.set_name(pause->name()); ! event.set_starttime(pause->start()); ! event.set_endtime(pause->end()); event.commit(); } } ! void visit(GCPhase* pause) { ShouldNotReachHere(); } ! void visit(ConcurrentPhase* pause) { Unimplemented(); } ! void visit(PausePhase* pause) { ! assert(PhasesStack::PHASE_LEVELS == 5, "Need more event types"); ! ! switch (pause->level()) { ! case 0: send_phase<EventGCPhasePause>(pause); break; ! case 1: send_phase<EventGCPhasePauseLevel1>(pause); break; ! case 2: send_phase<EventGCPhasePauseLevel2>(pause); break; ! case 3: send_phase<EventGCPhasePauseLevel3>(pause); break; default: /* Ignore sending this phase */ break; } } }; void GCTracer::send_phase_events(TimePartitions* time_partitions) const { PhaseSender phase_reporter; --- 418,461 ---- } class PhaseSender : public PhaseVisitor { public: template<typename T> ! void send_phase(GCPhase* phase) { T event(UNTIMED); if (event.should_commit()) { event.set_gcId(GCId::current()); ! event.set_name(phase->name()); ! event.set_starttime(phase->start()); ! event.set_endtime(phase->end()); event.commit(); } } ! void visit(GCPhase* phase) { ! switch (phase->type()) { ! case GCPhase::PausePhaseType: ! assert(phase->level() < PhasesStack::PHASE_LEVELS, "Need more event types for PausePhase"); ! ! switch (phase->level()) { ! case 0: send_phase<EventGCPhasePause>(phase); break; ! case 1: send_phase<EventGCPhasePauseLevel1>(phase); break; ! case 2: send_phase<EventGCPhasePauseLevel2>(phase); break; ! case 3: send_phase<EventGCPhasePauseLevel3>(phase); break; ! default: /* Ignore sending this phase */ break; ! } ! break; ! ! case GCPhase::ConcurrentPhaseType: ! assert(phase->level() < 1, "There's only one level for ConcurrentPhase"); ! ! switch (phase->level()) { ! case 0: send_phase<EventGCPhaseConcurrent>(phase); break; default: /* Ignore sending this phase */ break; } + break; + } } }; void GCTracer::send_phase_events(TimePartitions* time_partitions) const { PhaseSender phase_reporter;
< prev index next >