add skynet.context_ptr() & noneblocking socket.close

This commit is contained in:
云风
2013-07-29 21:24:57 +08:00
parent ba22224a4a
commit 1b4b46d271
3 changed files with 17 additions and 0 deletions

View File

@@ -385,6 +385,14 @@ _harbor(lua_State *L) {
return 2;
}
static int
_context(lua_State *L) {
struct skynet_context * context = lua_touserdata(L, lua_upvalueindex(1));
lua_pushlightuserdata(L, context);
return 1;
}
// trace api
static int
_trace_new(lua_State *L) {
@@ -465,6 +473,7 @@ luaopen_skynet_c(lua_State *L) {
{ "error", _error },
{ "tostring", _tostring },
{ "harbor", _harbor },
{ "context", _context },
{ NULL, NULL },
};

View File

@@ -615,4 +615,8 @@ function skynet.abort()
c.command("ABORT")
end
function skynet.context_ptr()
return c.context()
end
return skynet

View File

@@ -49,6 +49,10 @@ struct socket_pool {
static void
reply(struct skynet_context * ctx, uint32_t source, int session, char * cmd, int sz) {
if (session == 0) {
// don't reply when session == 0
return;
}
if (sz < 0) {
sz = strlen(cmd);
}