From 2b83b031718d466df9fc0c4abd89f7fe0bcdbbf8 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 4 May 2020 21:25:33 +0000 Subject: Avoid a race during shutdown that can lead to having to wait 120s extra before completeting shutdown sequence. This would happen because you could lose the signal sent from the stop method. Now you will either notice that is topped, or you will receive the signal. --- metrics/src/vespa/metrics/metricmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'metrics') diff --git a/metrics/src/vespa/metrics/metricmanager.cpp b/metrics/src/vespa/metrics/metricmanager.cpp index c330bf04d56..04f7568bfba 100644 --- a/metrics/src/vespa/metrics/metricmanager.cpp +++ b/metrics/src/vespa/metrics/metricmanager.cpp @@ -766,9 +766,9 @@ namespace { void MetricManager::run() { + vespalib::MonitorGuard sync(_waiter); while (!stopping()) { time_t currentTime = _timer->getTime(); - vespalib::MonitorGuard sync(_waiter); time_t next = tick(sync, currentTime); if (currentTime < next) { sync.wait((next - currentTime) * 1000); -- cgit v1.2.3