From c6c367b394c133e60a4e8a9cae3daa3a4adde1a9 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 16 Nov 2020 12:22:12 -0800 Subject: [PATCH] minor --- src/pvxs/util.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pvxs/util.h b/src/pvxs/util.h index f5f5c95..8675585 100644 --- a/src/pvxs/util.h +++ b/src/pvxs/util.h @@ -76,7 +76,7 @@ inline detail::Escaper escape(const char* s,size_t n) { #if !defined(__rtems__) && !defined(vxWorks) -/** minimal portable process signal handling in CLI tools. +/** Minimal portable process signal handling in CLI tools. * * @code * epicsEvent evt; @@ -87,13 +87,16 @@ inline detail::Escaper escape(const char* s,size_t n) { * evt.wait(); * // completion, or SIGINT * @endcode + * + * Saves existing handler, which are restored by dtor. */ class PVXS_API SigInt { void (*prevINT)(int); void (*prevTERM)(int); - std::function handler; + const std::function handler; static void _handle(int); public: + //! Install signal handler. SigInt(decltype (handler)&& handler); ~SigInt(); }; @@ -101,8 +104,9 @@ public: #else // !defined(__rtems__) && !defined(vxWorks) class SigInt { + const std::function handler; public: - SigInt(std::function&& handler) {} + SigInt(std::function&& handler) :handler(std::move(handler)) {} } #endif // !defined(__rtems__) && !defined(vxWorks)