зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1287712 - TimeDurationAccumulator includes running timer in reports - r=cpearce
If the timer is currently running, add started time segment until now to Total(), and add 1 to Count(). This ensures correct values are returned without having to Pause(). MozReview-Commit-ID: JSBvL93GtkE --HG-- extra : rebase_source : 86923c39e54c778151812a55e2ad9e4e010047fd
This commit is contained in:
Родитель
b0c57eaceb
Коммит
5d19600ca6
|
@ -1575,19 +1575,21 @@ protected:
|
|||
|
||||
public:
|
||||
// Helper class to measure times for MSE telemetry stats
|
||||
class TimeDurationAccumulator {
|
||||
class TimeDurationAccumulator
|
||||
{
|
||||
public:
|
||||
TimeDurationAccumulator()
|
||||
: mCount(0)
|
||||
{}
|
||||
void Start()
|
||||
{
|
||||
}
|
||||
void Start() {
|
||||
if (IsStarted()) {
|
||||
return;
|
||||
}
|
||||
mStartTime = TimeStamp::Now();
|
||||
}
|
||||
void Pause() {
|
||||
void Pause()
|
||||
{
|
||||
if (!IsStarted()) {
|
||||
return;
|
||||
}
|
||||
|
@ -1595,14 +1597,25 @@ public:
|
|||
mCount++;
|
||||
mStartTime = TimeStamp();
|
||||
}
|
||||
bool IsStarted() const {
|
||||
bool IsStarted() const
|
||||
{
|
||||
return !mStartTime.IsNull();
|
||||
}
|
||||
double Total() const {
|
||||
return mSum.ToSeconds();
|
||||
double Total() const
|
||||
{
|
||||
if (!IsStarted()) {
|
||||
return mSum.ToSeconds();
|
||||
}
|
||||
// Add current running time until now, but keep it running.
|
||||
return (mSum + (TimeStamp::Now() - mStartTime)).ToSeconds();
|
||||
}
|
||||
uint32_t Count() const {
|
||||
return mCount;
|
||||
uint32_t Count() const
|
||||
{
|
||||
if (!IsStarted()) {
|
||||
return mCount;
|
||||
}
|
||||
// Count current run in this report, without increasing the stored count.
|
||||
return mCount + 1;
|
||||
}
|
||||
private:
|
||||
TimeStamp mStartTime;
|
||||
|
|
Загрузка…
Ссылка в новой задаче