From bc163f9bc5f4395bb1dad3459639178deb7737e8 Mon Sep 17 00:00:00 2001 From: Nicolas Cornu Date: Thu, 25 Apr 2024 11:10:48 +0200 Subject: [PATCH] std::signal() has a fixed signature since C++03 --- CMakeLists.txt | 5 ----- cmake/HelperFunctions.cmake | 22 ---------------------- config.h.in | 3 --- src/include/Dispatch/dispatcher.h | 17 ++--------------- src/lib/Dispatch/dispatcher.cpp | 17 +---------------- 5 files changed, 3 insertions(+), 61 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 34498e4..ad88ea7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,11 +167,6 @@ else() set(HAVE_BSD_SIGNALS 0) endif() -# ============================================================================= -# Set return type of signal in RETSIGTYPE -# ============================================================================= -iv_check_signal_return_type(RETSIGTYPE) - # ============================================================================= # Generate config.h after all checks # ============================================================================= diff --git a/cmake/HelperFunctions.cmake b/cmake/HelperFunctions.cmake index 7b9c673..202ed76 100644 --- a/cmake/HelperFunctions.cmake +++ b/cmake/HelperFunctions.cmake @@ -57,25 +57,3 @@ function(iv_check_type_exists HEADER TYPE DEFAULT_TYPE VARIABLE) endif() file(REMOVE "conftest.c") endfunction() - -# ============================================================================= -# Check return type of signal -# ============================================================================= -function(iv_check_signal_return_type VARIABLE) - # code template to check signal support - set(CONFTEST_RETSIGTYPE " - #include - #include - - int main () { - return *(signal (0, 0)) (0) == 1; - }") - file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/conftest.c ${CONFTEST_RETSIGTYPE}) - try_compile(RESULT_VAR ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/conftest.c) - if(${RESULT_VAR}) - set(${VARIABLE} int PARENT_SCOPE) - else() - set(${VARIABLE} void PARENT_SCOPE) - endif() - file(REMOVE "conftest.c") -endfunction() diff --git a/config.h.in b/config.h.in index 2da9e25..adbad2a 100644 --- a/config.h.in +++ b/config.h.in @@ -134,9 +134,6 @@ /* define if stream.h is insufficient by itself */ #cmakedefine NO_OUTPUT_OPENMODE -/* Define as the return type of signal handlers (`int' or `void'). */ -#cmakedefine RETSIGTYPE @RETSIGTYPE@ - /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 diff --git a/src/include/Dispatch/dispatcher.h b/src/include/Dispatch/dispatcher.h index 38c840d..11c4c42 100644 --- a/src/include/Dispatch/dispatcher.h +++ b/src/include/Dispatch/dispatcher.h @@ -89,23 +89,10 @@ class Dispatcher { TimerQueue* _queue; ChildQueue* _cqueue; -#if defined(HAVE_BSD_SIGNALS) || defined(HAVE_POSIX_SIGNALS) - static RETSIGTYPE sigCLD(int); -#else // When is this used? - static RETSIGTYPE sigCLD(...); -#endif -//#if defined(sgi) -// static void sigCLD(...); -//#else -//#if defined(AIXV4) -// static void sigCLD(int); -//#else -// static void sigCLD(); -//#endif -//#endif + static void sigCLD(int); private: static Dispatcher* _instance; -private: + /* deny access since member-wise won't work */ Dispatcher(const Dispatcher&); Dispatcher& operator =(const Dispatcher&); diff --git a/src/lib/Dispatch/dispatcher.cpp b/src/lib/Dispatch/dispatcher.cpp index 72f68a8..bd2b2f0 100644 --- a/src/lib/Dispatch/dispatcher.cpp +++ b/src/lib/Dispatch/dispatcher.cpp @@ -619,16 +619,6 @@ int Dispatcher::fillInReady( return rmaskret.numSet() + wmaskret.numSet() + emaskret.numSet(); } -//#if defined(sgi) -//void Dispatcher::sigCLD(...) { -//#else -//#if defined(AIXV4) -//void Dispatcher::sigCLD(int) { -//#else -//void Dispatcher::sigCLD() { -//#endif -//#endif - // // From what I can see from other packages that have been ported to a lot // of systems, it looks like you can get away with declaring your signal @@ -637,12 +627,7 @@ int Dispatcher::fillInReady( // The actual type could be guessed by autoconf, I suppose, if it's // worth it to devise a test. // -RETSIGTYPE -#if defined(HAVE_BSD_SIGNALS) || defined(HAVE_POSIX_SIGNALS) -Dispatcher::sigCLD(int) -#else // When is this used? -Dispatcher::sigCLD(...) -#endif +void Dispatcher::sigCLD(int) { pid_t pid; int status;