guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 11/13: Presumes signal handler return void


From: Mike Gran
Subject: [Guile-commits] 11/13: Presumes signal handler return void
Date: Sat, 15 Oct 2022 15:16:32 -0400 (EDT)

mike121 pushed a commit to branch main
in repository guile.

commit d3261e84975a17134443cf9aabbbdd741d012eeb
Author: Michael Gran <spk121@yahoo.com>
AuthorDate: Sat Oct 8 05:47:00 2022 -0700

    Presumes signal handler return void
    
    Since Guile requires a C99 compiler, we can rely on signal handlers
    returning void, not int.
    
    * configure.ac: remove AC_TYPE_SIGNAL
    * libguile/scmsigs.c (SIGRETTYPE): remove SIGRETTYPE
      (take_signal): returns void
      (scm_sigaction_for_thread): presumes handlers return void
---
 configure.ac       |  1 -
 libguile/scmsigs.c | 24 +++++++-----------------
 2 files changed, 7 insertions(+), 18 deletions(-)

diff --git a/configure.ac b/configure.ac
index d93c70b24..52a844fe8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -444,7 +444,6 @@ AC_CHECK_TYPE(socklen_t, ,
 AC_CHECK_TYPES([struct ip_mreq], , , [#include <netinet/in.h>])
 
 AC_TYPE_GETGROUPS
-AC_TYPE_SIGNAL
 AC_TYPE_MODE_T
 
 dnl Check whether we need -lm.
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c
index 5b8ffaf80..975d2bd18 100644
--- a/libguile/scmsigs.c
+++ b/libguile/scmsigs.c
@@ -62,16 +62,6 @@
 
 
 
-/* SIGRETTYPE is the type that signal handlers return.  See <signal.h> */
-
-#ifdef RETSIGTYPE
-# define SIGRETTYPE RETSIGTYPE
-#else
-# define SIGRETTYPE void
-#endif
-
-
-
 /* take_signal is installed as the C signal handler whenever a Scheme
    handler is set.  When a signal arrives, take_signal will write a
    byte into the 'signal pipe'.  The 'signal delivery thread' will
@@ -108,7 +98,7 @@ static scm_i_pthread_mutex_t signal_delivery_thread_mutex =
 #ifdef HAVE_SIGACTION
 static struct sigaction orig_handlers[NSIG];
 #else
-static SIGRETTYPE (*orig_handlers[NSIG])(int);
+static void (*orig_handlers[NSIG])(int);
 #endif
 
 static SCM
@@ -130,7 +120,7 @@ close_1 (SCM proc, SCM arg)
 
 static int signal_pipe[2];
 
-static SIGRETTYPE
+static void
 take_signal (int signum)
 {
   int old_errno = errno;
@@ -235,7 +225,7 @@ scm_i_ensure_signal_delivery_thread ()
 
 #else /* !SCM_USE_PTHREAD_THREADS */
 
-static SIGRETTYPE
+static void
 take_signal (int signum)
 {
   SCM cell = SCM_SIMPLE_VECTOR_REF (signal_handler_asyncs, signum);
@@ -321,8 +311,8 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0,
   struct sigaction action;
   struct sigaction old_action;
 #else
-  SIGRETTYPE (* chandler) (int) = SIG_DFL;
-  SIGRETTYPE (* old_chandler) (int);
+  void (* chandler) (int) = SIG_DFL;
+  void (* old_chandler) (int);
 #endif
   int query_only = 0;
   int save_handler = 0;
@@ -359,9 +349,9 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0,
       if (handler_int == (long) SIG_DFL || handler_int == (long) SIG_IGN)
        {
 #ifdef HAVE_SIGACTION
-         action.sa_handler = (SIGRETTYPE (*) (int)) handler_int;
+         action.sa_handler = (void (*) (int)) handler_int;
 #else
-         chandler = (SIGRETTYPE (*) (int)) handler_int;
+         chandler = (void (*) (int)) handler_int;
 #endif
          install_handler (csig, SCM_BOOL_F, SCM_BOOL_F);
        }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]