使用线程本地存储lua_State

时间:2015-01-06 03:06:01

标签: lua thread-local iocp

我需要在IOCP中使用Lua,并使用线程本地存储来存储lua_State *。我应该在线程销毁之前使用lua_close()销毁lua_State,但工作线程是由IOCP创建的。

问题是何时是时候致电lua_close

static DWORD WINAPI work_thread_proc(void* parameter){
    lua_State * L = TlsGetValue(tls_lua_key);
    if(NULL = L){
          L=luaL_newstate();
          //DO some initialze for L...

          TlsSetValue(tls_lua_key,L);
    }

}


//..... other place call
QueueUserWorkItem(&work_thread_proc, req, WT_EXECUTELONGFUNCTION);

0 个答案:

没有答案