mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 17:14:59 +02:00
CR feedback
This commit is contained in:
parent
7de8a2267f
commit
fb09ad51b3
2 changed files with 16 additions and 18 deletions
|
@ -282,7 +282,7 @@ public:
|
|||
<< "maxElapsed:" << _maxElapsed
|
||||
<< "PREVIOUS maxElapsedAverage:" << _maxElapsedAverage
|
||||
<< "NEW maxElapsedAverage:" << elapsedMovingAverage
|
||||
<< "numSamples:" << _movingAverage.getNumSamples();
|
||||
<< "samples:" << _movingAverage.getSamples();
|
||||
_maxElapsedAverage = elapsedMovingAverage;
|
||||
}
|
||||
if (lastHeartbeatAge > _maxElapsed) {
|
||||
|
@ -292,7 +292,7 @@ public:
|
|||
<< "PREVIOUS maxElapsed:" << _maxElapsed
|
||||
<< "NEW maxElapsed:" << lastHeartbeatAge
|
||||
<< "maxElapsedAverage:" << _maxElapsedAverage
|
||||
<< "numSamples:" << _movingAverage.getNumSamples();
|
||||
<< "samples:" << _movingAverage.getSamples();
|
||||
_maxElapsed = lastHeartbeatAge;
|
||||
}
|
||||
if ((sinceLastReport > HEARTBEAT_REPORT_INTERVAL_USECS) || (elapsedMovingAverage > WARNING_ELAPSED_HEARTBEAT)) {
|
||||
|
@ -300,7 +300,7 @@ public:
|
|||
<< "elapsedMovingAverage:" << elapsedMovingAverage
|
||||
<< "maxElapsed:" << _maxElapsed
|
||||
<< "maxElapsedAverage:" << _maxElapsedAverage
|
||||
<< "numSamples:" << _movingAverage.getNumSamples();
|
||||
<< "samples:" << _movingAverage.getSamples();
|
||||
_lastReport = now;
|
||||
}
|
||||
|
||||
|
@ -310,7 +310,7 @@ public:
|
|||
<< "elapsedMovingAverage:" << elapsedMovingAverage
|
||||
<< "maxElapsed:" << _maxElapsed
|
||||
<< "maxElapsedAverage:" << _maxElapsedAverage
|
||||
<< "numSamples:" << _movingAverage.getNumSamples();
|
||||
<< "samples:" << _movingAverage.getSamples();
|
||||
deadlockDetectionCrash();
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -69,41 +69,39 @@ template <class T, int MAX_NUM_SAMPLES> class ThreadSafeMovingAverage {
|
|||
public:
|
||||
void clear() {
|
||||
std::unique_lock<std::mutex> lock(_lock);
|
||||
numSamples = 0;
|
||||
_samples = 0;
|
||||
}
|
||||
|
||||
bool isAverageValid() const {
|
||||
std::unique_lock<std::mutex> lock(_lock);
|
||||
return (numSamples > 0);
|
||||
return (_samples > 0);
|
||||
}
|
||||
|
||||
void addSample(T sample) {
|
||||
std::unique_lock<std::mutex> lock(_lock);
|
||||
if (numSamples > 0) {
|
||||
T lastAverage = average;
|
||||
average = (sample * WEIGHTING) + (lastAverage * ONE_MINUS_WEIGHTING);
|
||||
if (_samples > 0) {
|
||||
_average = (sample * WEIGHTING) + (_average * ONE_MINUS_WEIGHTING);
|
||||
} else {
|
||||
_average = sample;
|
||||
}
|
||||
else {
|
||||
average = sample;
|
||||
}
|
||||
numSamples++;
|
||||
_samples++;
|
||||
}
|
||||
|
||||
T getAverage() const {
|
||||
std::unique_lock<std::mutex> lock(_lock);
|
||||
return average;
|
||||
return _average;
|
||||
}
|
||||
|
||||
T getNumSamples() const {
|
||||
size_t getSamples() const {
|
||||
std::unique_lock<std::mutex> lock(_lock);
|
||||
return numSamples;
|
||||
return _samples;
|
||||
}
|
||||
|
||||
private:
|
||||
const float WEIGHTING = 1.0f / (float)MAX_NUM_SAMPLES;
|
||||
const float ONE_MINUS_WEIGHTING = 1.0f - WEIGHTING;
|
||||
int numSamples { 0 };
|
||||
T average;
|
||||
size_t _samples { 0 };
|
||||
T _average;
|
||||
mutable std::mutex _lock;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue