|
@@ -923,6 +923,35 @@ void ResourceLoader::clear_translation_remaps() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void ResourceLoader::clear_thread_load_tasks() {
|
|
|
+ thread_load_mutex->lock();
|
|
|
+
|
|
|
+ for (KeyValue<String, ResourceLoader::ThreadLoadTask> &E : thread_load_tasks) {
|
|
|
+ switch (E.value.status) {
|
|
|
+ case ResourceLoader::ThreadLoadStatus::THREAD_LOAD_LOADED: {
|
|
|
+ E.value.resource = Ref<Resource>();
|
|
|
+ } break;
|
|
|
+
|
|
|
+ case ResourceLoader::ThreadLoadStatus::THREAD_LOAD_IN_PROGRESS: {
|
|
|
+ if (E.value.thread != nullptr) {
|
|
|
+ E.value.thread->wait_to_finish();
|
|
|
+ memdelete(E.value.thread);
|
|
|
+ E.value.thread = nullptr;
|
|
|
+ }
|
|
|
+ E.value.resource = Ref<Resource>();
|
|
|
+ } break;
|
|
|
+
|
|
|
+ case ResourceLoader::ThreadLoadStatus::THREAD_LOAD_FAILED:
|
|
|
+ default: {
|
|
|
+ // do nothing
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ thread_load_tasks.clear();
|
|
|
+
|
|
|
+ thread_load_mutex->unlock();
|
|
|
+}
|
|
|
+
|
|
|
void ResourceLoader::load_path_remaps() {
|
|
|
if (!ProjectSettings::get_singleton()->has_setting("path_remap/remapped_paths")) {
|
|
|
return;
|