guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 02/05: Provide `kill' only if supported by the host


From: Andy Wingo
Subject: [Guile-commits] 02/05: Provide `kill' only if supported by the host
Date: Mon, 11 Jul 2016 20:55:11 +0000 (UTC)

wingo pushed a commit to branch stable-2.0
in repository guile.

commit 2247a56d5dab1a9fde1c66f73116e7fa8257607f
Author: Andy Wingo <address@hidden>
Date:   Mon Jul 11 22:17:09 2016 +0200

    Provide `kill' only if supported by the host
    
    * libguile/posix.c (scm_kill): Only provide if the host has `kill'.  An
      incompatible change on MinGW, where this function would work only if
      the PID was the current PID, but that will be fixed by the next
      process.
---
 libguile/posix.c |   21 ++-------------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/libguile/posix.c b/libguile/posix.c
index f37de83..68ad827 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
@@ -626,6 +626,7 @@ SCM_DEFINE (scm_setrlimit, "setrlimit", 3, 0, 0,
 #endif /* HAVE_GETRLIMIT */
 
 
+#ifdef HAVE_KILL
 SCM_DEFINE (scm_kill, "kill", 2, 0, 0,
             (SCM pid, SCM sig),
            "Sends a signal to the specified process or group of processes.\n\n"
@@ -653,30 +654,12 @@ SCM_DEFINE (scm_kill, "kill", 2, 0, 0,
 #define FUNC_NAME s_scm_kill
 {
   /* Signal values are interned in scm_init_posix().  */
-#ifdef HAVE_KILL
   if (kill (scm_to_int (pid), scm_to_int  (sig)) != 0)
     SCM_SYSERROR;
-#else
-  /* Mingw has raise(), but not kill().  (Other raw DOS environments might
-     be similar.)  Use raise() when the requested pid is our own process,
-     otherwise bomb.  */
-  if (scm_to_int (pid) == getpid ())
-    {
-      if (raise (scm_to_int (sig)) != 0)
-        {
-        err:
-          SCM_SYSERROR;
-        }
-      else
-        {
-          errno = ENOSYS;
-          goto err;
-        }
-    }
-#endif
   return SCM_UNSPECIFIED;
 }
 #undef FUNC_NAME
+#endif
 
 #ifdef HAVE_WAITPID
 SCM_DEFINE (scm_waitpid, "waitpid", 1, 1, 0,



reply via email to

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