Fix bug of unref resources in Lua binding; fd method delete -> cancel.
Signed-off-by: Xiongfei(Alex) Guo <xfguo@credosemi.com>
This commit is contained in:
parent
02ca593347
commit
3c92274bee
1 changed files with 7 additions and 3 deletions
10
lua/uloop.c
10
lua/uloop.c
|
@ -80,7 +80,7 @@ static int ul_timer_free(lua_State *L)
|
||||||
|
|
||||||
uloop_timeout_cancel(&tout->t);
|
uloop_timeout_cancel(&tout->t);
|
||||||
lua_getglobal(state, "__uloop_cb");
|
lua_getglobal(state, "__uloop_cb");
|
||||||
luaL_unref(L, -1, tout->r);
|
luaL_unref(state, -1, tout->r);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -177,10 +177,14 @@ static int ul_ufd_delete(lua_State *L)
|
||||||
struct lua_uloop_fd *ufd = lua_touserdata(L, 1);
|
struct lua_uloop_fd *ufd = lua_touserdata(L, 1);
|
||||||
|
|
||||||
uloop_fd_delete(&ufd->fd);
|
uloop_fd_delete(&ufd->fd);
|
||||||
|
|
||||||
lua_getglobal(state, "__uloop_cb");
|
lua_getglobal(state, "__uloop_cb");
|
||||||
luaL_unref(L, -1, ufd->r);
|
luaL_unref(state, -1, ufd->r);
|
||||||
|
lua_remove(state, -1);
|
||||||
|
|
||||||
lua_getglobal(state, "__uloop_fds");
|
lua_getglobal(state, "__uloop_fds");
|
||||||
luaL_unref(L, -1, ufd->fd_r);
|
luaL_unref(state, -1, ufd->fd_r);
|
||||||
|
lua_remove(state, -1);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue