summaryrefslogtreecommitdiff
path: root/sql/sql_analyze_stmt.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_analyze_stmt.h')
-rw-r--r--sql/sql_analyze_stmt.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/sql/sql_analyze_stmt.h b/sql/sql_analyze_stmt.h
index bf800fd1df6..d7634bdfb85 100644
--- a/sql/sql_analyze_stmt.h
+++ b/sql/sql_analyze_stmt.h
@@ -47,6 +47,14 @@ protected:
ulonglong count;
ulonglong cycles;
ulonglong last_start;
+
+ void cycles_stop_tracking()
+ {
+ ulonglong end= my_timer_cycles();
+ cycles += end - last_start;
+ if (unlikely(end < last_start))
+ cycles += ULONGLONG_MAX;
+ }
public:
Exec_time_tracker() : count(0), cycles(0) {}
@@ -59,7 +67,7 @@ public:
void stop_tracking()
{
count++;
- cycles += my_timer_cycles()- last_start;
+ cycles_stop_tracking();
}
// interface for getting the time
@@ -93,7 +101,7 @@ public:
*/
void stop_tracking()
{
- cycles += my_timer_cycles()- last_start;
+ cycles_stop_tracking();
}
};