diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp index f29f9eef98d..94f6caf6eb8 100644 --- a/core/io/resource_loader.cpp +++ b/core/io/resource_loader.cpp @@ -860,7 +860,7 @@ Ref ResourceLoader::_load_complete_inner(LoadToken &p_load_token, Erro } } core_bind::Semaphore done; - MessageQueue::get_main_singleton()->push_callable(callable_mp(&done, &core_bind::Semaphore::post)); + MessageQueue::get_main_singleton()->push_callable(callable_mp(&done, &core_bind::Semaphore::post).bind(1)); done.wait(); } } diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index 956fdc5cfa7..a50b2f3dccc 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -533,8 +533,10 @@ void EditorResourcePreview::stop() { } while (!exited.is_set()) { + // Sync pending work. OS::get_singleton()->delay_usec(10000); - RenderingServer::get_singleton()->sync(); //sync pending stuff, as thread may be blocked on rendering server + RenderingServer::get_singleton()->sync(); + MessageQueue::get_singleton()->flush(); } thread.wait_to_finish();