X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util-src%2Fsignal.c;h=961d2d3e06acda484613a0ebdfc54a8f25625586;hb=b9b20aa3f85ac7d9c5a8b0cce21b5b490969ceaf;hp=68ef73de365abf8d342a2a527e68895302a262bc;hpb=322fdb77fe58eafac7204955fb5b3146ee8700ea;p=prosody.git diff --git a/util-src/signal.c b/util-src/signal.c index 68ef73de..961d2d3e 100644 --- a/util-src/signal.c +++ b/util-src/signal.c @@ -27,7 +27,7 @@ */ #include -#include +#include #include "lua.h" #include "lauxlib.h" @@ -165,10 +165,13 @@ static struct signal_event *last_event = NULL; static void sighook(lua_State *L, lua_Debug *ar) { + struct signal_event *event; + /* restore the old hook */ + lua_sethook(L, Hsig, Hmask, Hcount); + lua_pushstring(L, LUA_SIGNAL); lua_gettable(L, LUA_REGISTRYINDEX); - struct signal_event *event; while((event = signal_queue)) { lua_pushnumber(L, event->Nsig); @@ -180,8 +183,6 @@ static void sighook(lua_State *L, lua_Debug *ar) lua_pop(L, 1); /* pop lua_signal table */ - /* restore the old hook */ - lua_sethook(L, Hsig, Hmask, Hcount); } static void handle(int sig) @@ -325,7 +326,7 @@ static int l_raise(lua_State *L) return 1; } -#if defined _POSIX_SOURCE || (defined(sun) || defined(__sun)) +#if defined(__unix__) || defined(__APPLE__) /* define some posix only functions */ @@ -372,7 +373,7 @@ static int l_kill(lua_State *L) static const struct luaL_Reg lsignal_lib[] = { {"signal", l_signal}, {"raise", l_raise}, -#if defined _POSIX_SOURCE || (defined(sun) || defined(__sun)) +#if defined(__unix__) || defined(__APPLE__) {"kill", l_kill}, #endif {NULL, NULL}