From 814a26553bd3f04cb0d6c93231c111bfd901a10f Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Thu, 25 Apr 2024 16:41:33 +0200 Subject: [PATCH] iox-#2284 Fix implicit conversion warning on macOS --- iceoryx_dds/source/gateway/main.cpp | 2 +- .../include/iceoryx_hoofs/platform/signal.hpp | 5 +++++ .../include/iceoryx_hoofs/platform/signal.hpp | 22 +++++++++++++++++-- .../include/iceoryx_hoofs/platform/signal.hpp | 5 +++++ .../include/iceoryx_hoofs/platform/signal.hpp | 5 +++++ .../include/iceoryx_hoofs/platform/signal.hpp | 2 ++ iceoryx_hoofs/platform/win/source/signal.cpp | 5 +++++ 7 files changed, 43 insertions(+), 3 deletions(-) diff --git a/iceoryx_dds/source/gateway/main.cpp b/iceoryx_dds/source/gateway/main.cpp index a085cf52d0..b6f76f6238 100644 --- a/iceoryx_dds/source/gateway/main.cpp +++ b/iceoryx_dds/source/gateway/main.cpp @@ -33,7 +33,7 @@ class ShutdownManager static void scheduleShutdown(int num) { char reason; - psignal(num, &reason); + iox_psignal(num, &reason); s_semaphore.post().or_else([](auto) { std::cerr << "failed to call post on shutdown semaphore" << std::endl; std::terminate(); diff --git a/iceoryx_hoofs/platform/linux/include/iceoryx_hoofs/platform/signal.hpp b/iceoryx_hoofs/platform/linux/include/iceoryx_hoofs/platform/signal.hpp index 955fc16bc5..8851eb2bb2 100644 --- a/iceoryx_hoofs/platform/linux/include/iceoryx_hoofs/platform/signal.hpp +++ b/iceoryx_hoofs/platform/linux/include/iceoryx_hoofs/platform/signal.hpp @@ -19,4 +19,9 @@ #include +inline void iox_psignal(int sig, const char* s) +{ + psignal(sig, s); +} + #endif // IOX_HOOFS_LINUX_PLATFORM_SIGNAL_HPP diff --git a/iceoryx_hoofs/platform/mac/include/iceoryx_hoofs/platform/signal.hpp b/iceoryx_hoofs/platform/mac/include/iceoryx_hoofs/platform/signal.hpp index e0b0f5edf2..d70f59bb26 100644 --- a/iceoryx_hoofs/platform/mac/include/iceoryx_hoofs/platform/signal.hpp +++ b/iceoryx_hoofs/platform/mac/include/iceoryx_hoofs/platform/signal.hpp @@ -19,9 +19,27 @@ #include -inline void psignal(int sig, const char* s) +namespace iox { - psignal(static_cast(sig), s); +namespace platform +{ +namespace helper +{ +inline void psignal_helper(void (*psignal_function)(int, const char*), int sig, const char* s) +{ + psignal_function(sig, s); +} +inline void psignal_helper(void (*psignal_function)(unsigned int, const char*), int sig, const char* s) +{ + psignal_function(static_cast(sig), s); +} +} // namespace helper +} // namespace platform +} // namespace iox + +inline void iox_psignal(int sig, const char* s) +{ + iox::platform::helper::psignal_helper(psignal, sig, s); } #endif // IOX_HOOFS_MAC_PLATFORM_SIGNAL_HPP diff --git a/iceoryx_hoofs/platform/qnx/include/iceoryx_hoofs/platform/signal.hpp b/iceoryx_hoofs/platform/qnx/include/iceoryx_hoofs/platform/signal.hpp index e329383769..6af748d489 100644 --- a/iceoryx_hoofs/platform/qnx/include/iceoryx_hoofs/platform/signal.hpp +++ b/iceoryx_hoofs/platform/qnx/include/iceoryx_hoofs/platform/signal.hpp @@ -19,4 +19,9 @@ #include +inline void iox_psignal(int sig, const char* s) +{ + psignal(sig, s); +} + #endif // IOX_HOOFS_QNX_PLATFORM_SIGNAL_HPP diff --git a/iceoryx_hoofs/platform/unix/include/iceoryx_hoofs/platform/signal.hpp b/iceoryx_hoofs/platform/unix/include/iceoryx_hoofs/platform/signal.hpp index e62d235180..68cad1527a 100644 --- a/iceoryx_hoofs/platform/unix/include/iceoryx_hoofs/platform/signal.hpp +++ b/iceoryx_hoofs/platform/unix/include/iceoryx_hoofs/platform/signal.hpp @@ -19,4 +19,9 @@ #include +inline void iox_psignal(int sig, const char* s) +{ + psignal(sig, s); +} + #endif // IOX_HOOFS_UNIX_PLATFORM_SIGNAL_HPP diff --git a/iceoryx_hoofs/platform/win/include/iceoryx_hoofs/platform/signal.hpp b/iceoryx_hoofs/platform/win/include/iceoryx_hoofs/platform/signal.hpp index 3beb6bb28e..db83f43c61 100644 --- a/iceoryx_hoofs/platform/win/include/iceoryx_hoofs/platform/signal.hpp +++ b/iceoryx_hoofs/platform/win/include/iceoryx_hoofs/platform/signal.hpp @@ -60,4 +60,6 @@ int sigemptyset(sigset_t* set); int sigaction(int signum, const struct sigaction* act, struct sigaction* oldact); int kill(pid_t pid, int sig); +void iox_psignal(int sig, const char* s); + #endif // IOX_HOOFS_WIN_PLATFORM_SIGNAL_HPP diff --git a/iceoryx_hoofs/platform/win/source/signal.cpp b/iceoryx_hoofs/platform/win/source/signal.cpp index cfdcafd2a0..a09f4f2b0f 100644 --- a/iceoryx_hoofs/platform/win/source/signal.cpp +++ b/iceoryx_hoofs/platform/win/source/signal.cpp @@ -36,3 +36,8 @@ int kill(pid_t pid, int sig) { return 0; } + +void iox_psignal(int sig, const char* s) +{ + psignal(sig, s); +}