mirror of
https://github.com/love2d/love.git
synced 2026-08-16 00:02:12 +02:00
getThreads works now (love.thread)
This commit is contained in:
@@ -304,17 +304,16 @@ namespace sdl
|
||||
return i->second;
|
||||
}
|
||||
|
||||
Thread **ThreadModule::getThreads() //THIS FUNCTION IS BROKEN
|
||||
//DO NOT USE IT
|
||||
//IT EVEN CONTAINS MEMORY LEAKS!!
|
||||
Thread **ThreadModule::getThreads()
|
||||
{
|
||||
Thread **list = new Thread*[threads.size()];
|
||||
Thread **list = new Thread*[threads.size()+1];
|
||||
int c = 0;
|
||||
for (threadlist_t::iterator i = threads.begin(); i != threads.end(); i++, c++)
|
||||
{
|
||||
list[c] = i->second;
|
||||
}
|
||||
return 0;
|
||||
list[threads.size()] = 0;
|
||||
return list;
|
||||
}
|
||||
|
||||
void ThreadModule::unregister(std::string name)
|
||||
|
||||
@@ -260,7 +260,18 @@ namespace sdl
|
||||
|
||||
int w_getThreads(lua_State *L)
|
||||
{
|
||||
return 0;
|
||||
Thread **list = instance->getThreads();
|
||||
lua_newtable(L);
|
||||
for (int i = 0; list[i] != 0; i++)
|
||||
{
|
||||
luax_newtype(L, "Thread", THREAD_THREAD_T, (void*) list[i]);
|
||||
list[i]->lock();
|
||||
list[i]->retain();
|
||||
list[i]->unlock();
|
||||
lua_setfield(L, -2, list[i]->getName().c_str());
|
||||
}
|
||||
delete[] list;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int w_getThread(lua_State *L)
|
||||
@@ -284,6 +295,7 @@ namespace sdl
|
||||
static const luaL_Reg module_functions[] = {
|
||||
{ "newThread", w_newThread },
|
||||
{ "getThread", w_getThread },
|
||||
{ "getThreads", w_getThreads },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user