aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/thread/Thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/thread/Thread.cpp')
-rw-r--r--src/lua/modules/thread/Thread.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/lua/modules/thread/Thread.cpp b/src/lua/modules/thread/Thread.cpp
index 5c9cb1f..7dfac25 100644
--- a/src/lua/modules/thread/Thread.cpp
+++ b/src/lua/modules/thread/Thread.cpp
@@ -12,9 +12,11 @@ namespace lua
using thread::Thread;
+ typedef Ref<Thread>& ThreadRef;
+
int luaopen_thread(lua_State* L);
- static inline Ref<Thread>& checkThread(lua_State* L)
+ static inline ThreadRef checkThread(lua_State* L)
{
Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_THREAD_THREAD);
return proxy->getRef<Thread>();
@@ -22,7 +24,7 @@ namespace lua
static int threadRunner(void* t)
{
- Ref<Thread>& ref = *(Ref<Thread>*)t;
+ ThreadRef ref = *(Ref<Thread>*)t;
lua_State* L = lua_open();
luax_openlibs(L);
luaopen_jin(L);
@@ -45,7 +47,7 @@ namespace lua
static int l_start(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
bool result = ref->start(&ref);
luax_pushboolean(L, result);
return 1;
@@ -53,14 +55,14 @@ namespace lua
static int l_wait(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
ref->wait();
return 0;
}
static int l_send(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
int slot = luax_checkinteger(L, 2);
const int vp = 3;
if (luax_isnumberstrict(L, vp))
@@ -93,7 +95,7 @@ namespace lua
static int l_receive(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
int slot = luax_checkinteger(L, 2);
bool result = ref->receive(slot);
luax_pushboolean(L, result);
@@ -102,7 +104,7 @@ namespace lua
static int l_fetch(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
int slot = luax_checkinteger(L, 2);
Thread::Variant v = ref->fetch(slot);
switch (v.type)
@@ -136,7 +138,7 @@ namespace lua
static int l_demand(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
int slot = luax_checkinteger(L, 2);
Thread::Variant v = ref->demand(slot);
switch (v.type)
@@ -170,7 +172,7 @@ namespace lua
static int l_remove(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
int slot = luax_checkinteger(L, 2);
ref->remove(slot);
return 0;
@@ -178,7 +180,7 @@ namespace lua
static int l_getName(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
const char* name = ref->getName();
luax_pushstring(L, name);
return 1;
@@ -186,7 +188,7 @@ namespace lua
static int l_isRunning(lua_State* L)
{
- Ref<Thread>& ref = checkThread(L);
+ ThreadRef ref = checkThread(L);
bool running = ref->isRunning();
luax_pushboolean(L, running);
return 1;