mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
if a timergroup is destroyed before its timers, print times.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99873 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b9312690a2
commit
9f9f6d19dd
@ -171,6 +171,7 @@ public:
|
||||
explicit TimerGroup(const TimerGroup &TG) : FirstTimer(0) {
|
||||
operator=(TG);
|
||||
}
|
||||
~TimerGroup();
|
||||
|
||||
void operator=(const TimerGroup &TG) {
|
||||
assert(TG.FirstTimer == 0 && FirstTimer == 0 &&
|
||||
@ -181,11 +182,6 @@ public:
|
||||
|
||||
void setName(const std::string &name) { Name = name; }
|
||||
|
||||
~TimerGroup() {
|
||||
assert(FirstTimer == 0 &&
|
||||
"TimerGroup destroyed before all contained timers!");
|
||||
}
|
||||
|
||||
void PrintQueuedTimers(raw_ostream &OS);
|
||||
|
||||
private:
|
||||
|
@ -128,6 +128,6 @@ StatisticInfo::~StatisticInfo() {
|
||||
OutStream << '\n'; // Flush the output stream...
|
||||
OutStream.flush();
|
||||
|
||||
if (&OutStream != &outs() && &OutStream != &errs() && &OutStream != &dbgs())
|
||||
if (&OutStream != &outs() && &OutStream != &errs())
|
||||
delete &OutStream; // Close the file.
|
||||
}
|
||||
|
@ -237,14 +237,22 @@ NamedRegionTimer::NamedRegionTimer(const std::string &Name,
|
||||
// TimerGroup Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
TimerGroup::~TimerGroup() {
|
||||
// If the timer group is destroyed before the timers it owns, accumulate and
|
||||
// print the timing data.
|
||||
while (FirstTimer != 0)
|
||||
removeTimer(*FirstTimer);
|
||||
}
|
||||
|
||||
|
||||
void TimerGroup::removeTimer(Timer &T) {
|
||||
sys::SmartScopedLock<true> L(*TimerLock);
|
||||
|
||||
// If the timer was started, move its data to TimersToPrint.
|
||||
if (T.Started) {
|
||||
T.Started = false;
|
||||
if (T.Started)
|
||||
TimersToPrint.push_back(std::make_pair(T.Time, T.Name));
|
||||
}
|
||||
|
||||
T.TG = 0;
|
||||
|
||||
// Unlink the timer from our list.
|
||||
*T.Prev = T.Next;
|
||||
|
Loading…
Reference in New Issue
Block a user