1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-03 19:11:41 +00:00

Fix cases of resource load tasks not being awaitable

This commit is contained in:
Pedro J. Estébanez
2023-02-20 19:32:04 +01:00
parent 618bb173ba
commit b862fc8c9b

View File

@@ -447,6 +447,17 @@ Ref<Resource> ResourceLoader::load_threaded_get(const String &p_path, Error *r_e
ThreadLoadTask &load_task = thread_load_tasks[local_path];
if (!load_task.cond_var && load_task.status == THREAD_LOAD_IN_PROGRESS) {
// A condition variable was never created for this task.
// That happens when a load has been initiated with subthreads disabled,
// but now another load thread needs to interact with this one (either
// because of subthreads being used this time, or because it's simply a
// threaded load running on a different thread).
// Since we want to be notified when the load ends, we must create the
// condition variable now.
load_task.cond_var = memnew(ConditionVariable);
}
//cond var still exists, meaning it's still loading, request poll
if (load_task.cond_var) {
{