mirror of
https://github.com/minetest/minetest.git
synced 2024-11-05 07:13:46 +01:00
Fix over-poping and only push the core once
This commit is contained in:
parent
e7706593c6
commit
5bd2aea663
@ -262,6 +262,12 @@ void* AsyncWorkerThread::Thread()
|
||||
abort();
|
||||
}
|
||||
|
||||
lua_getglobal(L, "core");
|
||||
if (lua_isnil(L, -1)) {
|
||||
errorstream << "Unable to find core within async environment!";
|
||||
abort();
|
||||
}
|
||||
|
||||
// Main loop
|
||||
while (!StopRequested()) {
|
||||
// Wait for job
|
||||
@ -271,12 +277,6 @@ void* AsyncWorkerThread::Thread()
|
||||
continue;
|
||||
}
|
||||
|
||||
lua_getglobal(L, "core");
|
||||
if (lua_isnil(L, -1)) {
|
||||
errorstream << "Unable to find core within async environment!";
|
||||
abort();
|
||||
}
|
||||
|
||||
lua_getfield(L, -1, "job_processor");
|
||||
if (lua_isnil(L, -1)) {
|
||||
errorstream << "Unable to get async job processor!" << std::endl;
|
||||
@ -303,13 +303,16 @@ void* AsyncWorkerThread::Thread()
|
||||
toProcess.serializedResult = std::string(retval, length);
|
||||
}
|
||||
|
||||
// Pop core, job_processor, and retval
|
||||
lua_pop(L, 3);
|
||||
lua_pop(L, 1); // Pop retval
|
||||
|
||||
// Put job result
|
||||
jobDispatcher->putJobResult(toProcess);
|
||||
}
|
||||
|
||||
lua_pop(L, 1); // Pop core
|
||||
|
||||
log_deregister_thread();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user