From 2247a56d5dab1a9fde1c66f73116e7fa8257607f Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Mon, 11 Jul 2016 22:17:09 +0200 Subject: [PATCH] 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 f37de83c8..68ad8276d 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,