aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zencore/include/zencore/stats.h2
-rw-r--r--zencore/stats.cpp11
2 files changed, 12 insertions, 1 deletions
diff --git a/zencore/include/zencore/stats.h b/zencore/include/zencore/stats.h
index dfa8dac34..2e567d614 100644
--- a/zencore/include/zencore/stats.h
+++ b/zencore/include/zencore/stats.h
@@ -209,6 +209,8 @@ public:
Scope(OperationTiming& Outer);
~Scope();
+ void Cancel();
+
private:
OperationTiming& m_Outer;
uint64_t m_StartTick;
diff --git a/zencore/stats.cpp b/zencore/stats.cpp
index 34dc2828f..47efba76b 100644
--- a/zencore/stats.cpp
+++ b/zencore/stats.cpp
@@ -398,7 +398,16 @@ OperationTiming::Scope::Scope(OperationTiming& Outer) : m_Outer(Outer), m_StartT
OperationTiming::Scope::~Scope()
{
- m_Outer.Update(GetHifreqTimerValue() - m_StartTick);
+ if (m_StartTick != 0)
+ {
+ m_Outer.Update(GetHifreqTimerValue() - m_StartTick);
+ }
+}
+
+void
+OperationTiming::Scope::Cancel()
+{
+ m_StartTick = 0;
}
//////////////////////////////////////////////////////////////////////////