diff options
author | chai <chaifix@163.com> | 2018-12-08 22:05:31 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-12-08 22:05:31 +0800 |
commit | a16ce94158c9cf22a19c0e73dfe2e992a8302af1 (patch) | |
tree | 52d80d950cd410ba82af909e18f77e3b11cd6eda /src/lua/modules/thread/je_lua_thread.cpp | |
parent | d34e5c9d7c6135e805f2cc231411cdcc9910190c (diff) |
*去除shared template
Diffstat (limited to 'src/lua/modules/thread/je_lua_thread.cpp')
-rw-r--r-- | src/lua/modules/thread/je_lua_thread.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/lua/modules/thread/je_lua_thread.cpp b/src/lua/modules/thread/je_lua_thread.cpp index 566d0ff..35bf876 100644 --- a/src/lua/modules/thread/je_lua_thread.cpp +++ b/src/lua/modules/thread/je_lua_thread.cpp @@ -12,26 +12,25 @@ namespace JinEngine const char* Jin_Lua_Thread = "Thread"; - typedef Shared<Thread>& SharedThread; - int luaopen_thread(lua_State* L); - static inline SharedThread checkThread(lua_State* L) + static inline Thread* checkThread(lua_State* L) { LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Thread); - return luaObj->getShared<Thread>(); + return luaObj->getObject<Thread>(); } LUA_IMPLEMENT int threadRunner(void* t) { - SharedThread shared = *(Shared<Thread>*)t; + Shared* shared = (Shared*)t; + Thread* thread = shared->getObject<Thread>(); lua_State* L = lua_open(); luax_openlibs(L); open(L); luax_getglobal(L, MODULE_NAME); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, &shared); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, shared); luax_setfield(L, -2, "_curThread"); - luax_dostring(L, shared->code.c_str()); + luax_dostring(L, thread->code.c_str()); luax_close(L); return 0; } @@ -45,7 +44,7 @@ namespace JinEngine LUA_IMPLEMENT int l_start(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); bool result = shared->start(&shared); luax_pushboolean(L, result); return 1; @@ -53,14 +52,14 @@ namespace JinEngine LUA_IMPLEMENT int l_wait(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); shared->wait(); return 0; } LUA_IMPLEMENT int l_send(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); int slot = luax_checkinteger(L, 2); const int vp = 3; if (luax_isnumberstrict(L, vp)) @@ -93,7 +92,7 @@ namespace JinEngine LUA_IMPLEMENT int l_receive(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); int slot = luax_checkinteger(L, 2); bool result = shared->receive(slot); luax_pushboolean(L, result); @@ -102,7 +101,7 @@ namespace JinEngine LUA_IMPLEMENT int l_fetch(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); int slot = luax_checkinteger(L, 2); Thread::Variant v = shared->fetch(slot); switch (v.type) @@ -135,7 +134,7 @@ namespace JinEngine LUA_IMPLEMENT int l_demand(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); int slot = luax_checkinteger(L, 2); Thread::Variant v = shared->demand(slot); switch (v.type) @@ -168,7 +167,7 @@ namespace JinEngine LUA_IMPLEMENT int l_remove(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); int slot = luax_checkinteger(L, 2); shared->remove(slot); return 0; @@ -176,7 +175,7 @@ namespace JinEngine LUA_IMPLEMENT int l_getName(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); const char* name = shared->getName(); luax_pushstring(L, name); return 1; @@ -184,7 +183,7 @@ namespace JinEngine LUA_IMPLEMENT int l_isRunning(lua_State* L) { - SharedThread shared = checkThread(L); + Thread* shared = checkThread(L); bool running = shared->isRunning(); luax_pushboolean(L, running); return 1; @@ -214,7 +213,7 @@ namespace JinEngine const char* name = luax_checkstring(L, 1); const char* code = luax_checkstring(L, 2); Thread* thread = new Thread(name, code, threadRunner); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, new Shared<Thread>(thread, Jin_Lua_Thread)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, new Shared(thread, Jin_Lua_Thread)); return 1; } |