fix unix build and CR feedback

This commit is contained in:
Brad Hefta-Gaub 2016-03-24 15:45:44 -07:00
parent deed643ca7
commit 8691aa6905
3 changed files with 15 additions and 16 deletions

View file

@ -248,13 +248,8 @@ public:
// Set the heartbeat on launch
DeadlockWatchdogThread() {
setObjectName("Deadlock Watchdog");
QTimer* heartbeatTimer = new QTimer();
// Give the heartbeat an initial value
_heartbeat = usecTimestampNow();
connect(heartbeatTimer, &QTimer::timeout, [this] {
updateHeartbeat();
});
heartbeatTimer->start(HEARTBEAT_UPDATE_INTERVAL_SECS * MSECS_PER_SECOND);
connect(qApp, &QCoreApplication::aboutToQuit, [this] {
_quit = true;
});
@ -278,7 +273,7 @@ public:
auto now = usecTimestampNow();
auto lastHeartbeatAge = now - _heartbeat;
auto sinceLastReport = now - _lastReport;
int elapsedMovingAverage = _movingAverage.average;
auto elapsedMovingAverage = _movingAverage.getAverage();
if (elapsedMovingAverage > _maxElapsedAverage) {
qDebug() << "DEADLOCK WATCHDOG NEW maxElapsedAverage:"
@ -287,7 +282,7 @@ public:
<< "maxElapsed:" << _maxElapsed
<< "PREVIOUS maxElapsedAverage:" << _maxElapsedAverage
<< "NEW maxElapsedAverage:" << elapsedMovingAverage
<< "numSamples:" << _movingAverage.numSamples;
<< "numSamples:" << _movingAverage.getNumSamples();
_maxElapsedAverage = elapsedMovingAverage;
}
if (lastHeartbeatAge > _maxElapsed) {
@ -297,7 +292,7 @@ public:
<< "PREVIOUS maxElapsed:" << _maxElapsed
<< "NEW maxElapsed:" << lastHeartbeatAge
<< "maxElapsedAverage:" << _maxElapsedAverage
<< "numSamples:" << _movingAverage.numSamples;
<< "numSamples:" << _movingAverage.getNumSamples();
_maxElapsed = lastHeartbeatAge;
}
if ((sinceLastReport > HEARTBEAT_REPORT_INTERVAL_USECS) || (elapsedMovingAverage > WARNING_ELAPSED_HEARTBEAT)) {
@ -305,7 +300,7 @@ public:
<< "elapsedMovingAverage:" << elapsedMovingAverage
<< "maxElapsed:" << _maxElapsed
<< "maxElapsedAverage:" << _maxElapsedAverage
<< "numSamples:" << _movingAverage.numSamples;
<< "numSamples:" << _movingAverage.getNumSamples();
_lastReport = now;
}
@ -315,7 +310,7 @@ public:
<< "elapsedMovingAverage:" << elapsedMovingAverage
<< "maxElapsed:" << _maxElapsed
<< "maxElapsedAverage:" << _maxElapsedAverage
<< "numSamples:" << _movingAverage.numSamples;
<< "numSamples:" << _movingAverage.getNumSamples();
deadlockDetectionCrash();
}
#endif

View file

@ -67,5 +67,5 @@ void RangeTimer::end(gpu::Batch& batch) {
}
double RangeTimer::getAverage() const {
return _movingAverage.average;
return _movingAverage.getAverage();
}

View file

@ -44,11 +44,6 @@ private:
template <class T, int MAX_NUM_SAMPLES> class MovingAverage {
public:
const float WEIGHTING = 1.0f / (float)MAX_NUM_SAMPLES;
const float ONE_MINUS_WEIGHTING = 1.0f - WEIGHTING;
std::atomic<int> numSamples { 0 };
std::atomic<T> average;
void clear() {
numSamples = 0;
}
@ -64,6 +59,15 @@ public:
}
numSamples++;
}
T getAverage() const { return average; }
T getNumSamples() const { return numSamples; }
private:
const float WEIGHTING = 1.0f / (float)MAX_NUM_SAMPLES;
const float ONE_MINUS_WEIGHTING = 1.0f - WEIGHTING;
std::atomic<int> numSamples{ 0 };
std::atomic<T> average;
};
#endif // hifi_SimpleMovingAverage_h