mirror of
https://github.com/love2d/love.git
synced 2026-08-13 17:10:54 +02:00
Switched global thread to love._curthread and made love.thread.getThread() return that
This commit is contained in:
@@ -44,7 +44,9 @@ namespace sdl
|
||||
luaopen_love_thread(L);
|
||||
lua_pushstring(L, comm->getName());
|
||||
luax_convobj(L, lua_gettop(L), "thread", "getThread");
|
||||
lua_setglobal(L, "thread");
|
||||
lua_getglobal(L, "love");
|
||||
lua_pushvalue(L, -2);
|
||||
lua_setfield(L, -2, "_curthread");
|
||||
if(luaL_dostring(L, comm->getCode()) == 1)
|
||||
{
|
||||
ThreadVariant *v = new ThreadVariant(lua_tostring(L, -1));
|
||||
|
||||
@@ -276,6 +276,12 @@ namespace sdl
|
||||
|
||||
int w_getThread(lua_State *L)
|
||||
{
|
||||
if (lua_isnoneornil(L, 1))
|
||||
{
|
||||
lua_getglobal(L, "love");
|
||||
lua_getfield(L, -1, "_curthread");
|
||||
return 1;
|
||||
}
|
||||
std::string name = luaL_checkstring(L, 1);
|
||||
Thread *t = instance->getThread(name);
|
||||
if (t)
|
||||
@@ -311,6 +317,13 @@ namespace sdl
|
||||
try
|
||||
{
|
||||
instance = new ThreadModule();
|
||||
lua_getglobal(L, "love");
|
||||
Thread *curthread = instance->getThread("main");
|
||||
curthread->lock();
|
||||
curthread->retain();
|
||||
curthread->unlock();
|
||||
luax_newtype(L, "Thread", THREAD_THREAD_T, (void*)curthread);
|
||||
lua_setfield(L, -2, "_curthread");
|
||||
}
|
||||
catch(Exception & e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user