diff options
author | jluehrs2 <jluehrs2@uiuc.edu> | 2007-10-10 14:30:32 -0500 |
---|---|---|
committer | jluehrs2 <jluehrs2@uiuc.edu> | 2007-10-10 14:30:32 -0500 |
commit | 6031545640d24282e09258680becf3e31298ff93 (patch) | |
tree | fc484b18bdf658884d741f5d5697060653acb54c | |
parent | 995881a599e8dea6de18e23c05ac4dcb670ba4ac (diff) | |
download | luasignal-6031545640d24282e09258680becf3e31298ff93.tar.gz luasignal-6031545640d24282e09258680becf3e31298ff93.zip |
don't block signals during handler execution
-rw-r--r-- | src/signal.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/signal.c b/src/signal.c index c833315..bc0292e 100644 --- a/src/signal.c +++ b/src/signal.c @@ -35,7 +35,9 @@ static void lua_signal_handler(lua_State* L, lua_Debug* D) lua_getfield(gL, LUA_REGISTRYINDEX, REG_TABLE); lua_getfield(gL, -1, signame); lua_pushstring(gL, signame); + sigprocmask(SIG_SETMASK, &oldset, NULL); lua_call(gL, 1, 0); + sigprocmask(SIG_BLOCK, &sset, &oldset); } sigprocmask(SIG_SETMASK, &oldset, NULL); |