From c0775d328cd9b0eb6175b690e541d1ea8b906261 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 1 Oct 2020 20:35:21 +0200 Subject: [PATCH] output/Filtered: move try/catch from IteratePause() to caller --- src/output/Filtered.cxx | 10 ++-------- src/output/Filtered.hxx | 2 +- src/output/Thread.cxx | 8 ++++++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/output/Filtered.cxx b/src/output/Filtered.cxx index 45c957141..a38add5c4 100644 --- a/src/output/Filtered.cxx +++ b/src/output/Filtered.cxx @@ -196,13 +196,7 @@ FilteredAudioOutput::BeginPause() noexcept } bool -FilteredAudioOutput::IteratePause() noexcept +FilteredAudioOutput::IteratePause() { - try { - return output->Pause(); - } catch (...) { - FormatError(std::current_exception(), "Failed to pause %s", - GetLogName()); - return false; - } + return output->Pause(); } diff --git a/src/output/Filtered.hxx b/src/output/Filtered.hxx index 97d37765a..11a0ac742 100644 --- a/src/output/Filtered.hxx +++ b/src/output/Filtered.hxx @@ -227,7 +227,7 @@ public: void Cancel() noexcept; void BeginPause() noexcept; - bool IteratePause() noexcept; + bool IteratePause(); void EndPause() noexcept{ } diff --git a/src/output/Thread.cxx b/src/output/Thread.cxx index b42d517d7..232145ce1 100644 --- a/src/output/Thread.cxx +++ b/src/output/Thread.cxx @@ -338,10 +338,14 @@ AudioOutputControl::InternalPause(std::unique_lock &lock) noexcept if (!WaitForDelay(lock)) break; - bool success; - { + bool success = false; + try { const ScopeUnlock unlock(mutex); success = output->IteratePause(); + } catch (...) { + FormatError(std::current_exception(), + "Failed to pause %s", + GetLogName()); } if (!success) {