use correct latency computation

This commit is contained in:
Jeff Becker 2016-11-15 11:15:48 -05:00
parent 98a55c0613
commit 69888e148e
2 changed files with 11 additions and 7 deletions

View File

@ -23,18 +23,23 @@ namespace tunnel
void TunnelLatency::AddSample(Sample s)
{
m_samples ++;
m_latency += s / m_samples;
std::unique_lock<std::mutex> l(m_access);
m_samples.push_back(s);
}
bool TunnelLatency::HasSamples() const
{
return m_samples > 0;
std::unique_lock<std::mutex> l(m_access);
return m_samples.size() > 0;
}
TunnelLatency::Latency TunnelLatency::GetMeanLatency() const
{
return m_latency;
std::unique_lock<std::mutex> l(m_access);
Latency l = 0;
for(auto s : m_samples)
l += s;
return l / m_samples.size();
}

View File

@ -90,9 +90,8 @@ namespace tunnel
bool HasSamples() const;
Latency GetMeanLatency() const;
Latency m_latency = 0;
std::size_t m_samples = 0;
std::vector<Sample> m_samples;
std::mutex m_access;
};
class OutboundTunnel;