From cf2a15c76b86f2233c0b260e6504df2d6d668152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Sat, 13 Apr 1996 04:31:43 +0200 Subject: [PATCH] alarm() added Rev: src/lpc_signal.c:1.9 --- src/lpc_signal.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lpc_signal.c b/src/lpc_signal.c index 1195d0388f..b149afe867 100644 --- a/src/lpc_signal.c +++ b/src/lpc_signal.c @@ -13,6 +13,10 @@ #include <signal.h> #include <sys/wait.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + #ifdef NSIG #define MAX_SIGNALS NSIG #else @@ -369,6 +373,22 @@ static void f_getpid(INT32 args) push_int(getpid()); } +static void f_alarm(INT32 args) +{ + long seconds; + + if(args < 1) + error("Too few arguments to signame()\n"); + + if(sp[-args].type != T_INT) + error("Bad argument 1 to signame()\n"); + + seconds=sp[-args].u.integer; + + pop_n_elems(args); + push_int(alarm(seconds)); +} + void init_signals() { int e; @@ -386,6 +406,7 @@ void init_signals() add_efun("signame",f_signame,"function(int:string)",0); add_efun("signum",f_signum,"function(string:int)",0); add_efun("getpid",f_getpid,"function(:int)",0); + add_efun("alarm",f_alarm,"function(int:int)",OPT_SIDE_EFFECT); } void exit_signals() -- GitLab