sniperHW / chuck

high performance and easily use asynchronous network library for C/Lua
52 stars 32 forks source link

初始化一个signal但是不使用,将触发段错误 #5

Closed zhuoyikang closed 9 years ago

zhuoyikang commented 9 years ago

local chuck = require("chuck") local signal = chuck.signal local signaler = signal.signaler(signal.SIGINT)

--- 不register to engine ,gc的时候会段错误

static int32_t lua_signaler_gc(lua_State _L) { signaler *s = lua_tosignaler(L,1); LOCK(); signalers[s->signum] = NULL; UNLOCK();
releaseluaRef(&s->luacallback); -> 这里应该加个判断 close(cast(handle,s)->fd); return 0; }

//fix 不一定非要执行吧,有时候这东东并没有被register. if(s->callback){ release_luaRef(&s->luacallback); }

sniperHW commented 9 years ago

应该不是这个问题.release_luaRef内部是做了合法性判断的。