From ffe4e5af5f2e2f1f1e9a75802b27b5413b17a26d Mon Sep 17 00:00:00 2001 From: Samuel Gaist Date: Wed, 10 Sep 2025 14:10:00 +0200 Subject: [PATCH] Revert "refactor(userspace/falco): remove duplicate condition test" This reverts commit 0ae61528fb981f790c444bca518365b3a6ef7929. Signed-off-by: Samuel Gaist --- userspace/falco/atomic_signal_handler.h | 28 +++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/userspace/falco/atomic_signal_handler.h b/userspace/falco/atomic_signal_handler.h index f141d9b5..5630eb3c 100644 --- a/userspace/falco/atomic_signal_handler.h +++ b/userspace/falco/atomic_signal_handler.h @@ -85,21 +85,23 @@ public: inline bool handle(std::function f) { if(triggered() && !handled()) { std::unique_lock lock(m_mtx); - try { - f(); - // note: the action may have forcely reset - // the signal handler, so we don't want to create - // an inconsistent state - if(triggered()) { - m_handled.store(true, std::memory_order_seq_cst); + if(!handled()) { + try { + f(); + // note: the action may have forcely reset + // the signal handler, so we don't want to create + // an inconsistent state + if(triggered()) { + m_handled.store(true, std::memory_order_seq_cst); + } + } catch(std::exception&) { + if(triggered()) { + m_handled.store(true, std::memory_order_seq_cst); + } + throw; } - } catch(std::exception&) { - if(triggered()) { - m_handled.store(true, std::memory_order_seq_cst); - } - throw; + return true; } - return true; } return false; }