From 0affa2867a688783a364acadf6454cc5ad73c5eb Mon Sep 17 00:00:00 2001 From: Bernard Normier Date: Mon, 27 Jan 2025 10:06:44 -0500 Subject: [PATCH] Convert wait into member function --- cpp/include/Ice/CtrlCHandler.h | 14 ++++++-------- cpp/src/Ice/CtrlCHandler.cpp | 10 +++++----- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/cpp/include/Ice/CtrlCHandler.h b/cpp/include/Ice/CtrlCHandler.h index 010e302ea38..2c1fbc8b86c 100644 --- a/cpp/include/Ice/CtrlCHandler.h +++ b/cpp/include/Ice/CtrlCHandler.h @@ -44,15 +44,13 @@ namespace Ice /// Obtains the current signal callback. /// @return The callback. [[nodiscard]] CtrlCHandlerCallback getCallback() const; - }; - /// Waits until the CtrlC-C handler catches a signal. - /// @param handler The Ctrl-C handler. - /// @return The signal number that was caught. - /// @remark This function installs a callback in the CtrlCHandler object. It must not be called when a non-null - /// callback is already installed. - /// \headerfile Ice/Ice.h - ICE_API int wait(CtrlCHandler& handler); + /// Waits until this handler catches a signal. + /// @return The signal number that was caught. + /// @remark This function installs a signal callback. It must not be called when a non-null callback is already + /// installed. + int wait(); + }; } #endif diff --git a/cpp/src/Ice/CtrlCHandler.cpp b/cpp/src/Ice/CtrlCHandler.cpp index 6cce5f3440d..e41e3af65c1 100644 --- a/cpp/src/Ice/CtrlCHandler.cpp +++ b/cpp/src/Ice/CtrlCHandler.cpp @@ -205,20 +205,20 @@ CtrlCHandler::~CtrlCHandler() #endif int -Ice::wait(CtrlCHandler& handler) +CtrlCHandler::wait() { promise promise; - CtrlCHandlerCallback oldCallback = handler.setCallback( - [&promise, &handler](int sig) + CtrlCHandlerCallback oldCallback = setCallback( + [&promise, this](int sig) { - handler.setCallback(nullptr); // ignore further signals + setCallback(nullptr); // ignore further signals promise.set_value(sig); }); if (oldCallback) { - handler.setCallback(oldCallback); + setCallback(oldCallback); throw Ice::LocalException{__FILE__, __LINE__, "do not call wait on a CtrlCHandler with a registered callback"}; }