diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-14 20:41:38 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-14 20:41:38 +0000 |
commit | 234a26fb4642f8909e699f9d921d8abc149c63ab (patch) | |
tree | 90a8a6c045f6ceb2ac5f4da113e1bb1bab597afb /metrics | |
parent | 34701ddb6dcc23aa0adf3e18fe474959200431d0 (diff) |
Hold lock when signalling.
Diffstat (limited to 'metrics')
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/metrics/src/vespa/metrics/metricmanager.cpp b/metrics/src/vespa/metrics/metricmanager.cpp index c3539452e81..51149cf67c3 100644 --- a/metrics/src/vespa/metrics/metricmanager.cpp +++ b/metrics/src/vespa/metrics/metricmanager.cpp @@ -98,7 +98,10 @@ MetricManager::stop() return; // Let stop() be idempotent. } Runnable::stop(); - _cond.notify_all(); + { + MetricLockGuard sync(_waiter); + _cond.notify_all(); + } join(); } @@ -643,6 +646,7 @@ MetricManager::getMetricSnapshotSet(const MetricLockGuard& l, void MetricManager::timeChangedNotification() const { + MetricLockGuard sync(_waiter); _cond.notify_all(); } @@ -714,6 +718,7 @@ MetricManager::forceEventLogging() { LOG(debug, "Forcing event logging to happen."); // Ensure background thread is not in a current cycle during change. + MetricLockGuard sync(_waiter); _cond.notify_all(); } |