Jelajahi Sumber

Make notify_dependency_error only defer calls if called from secondary threads.

(cherry picked from commit 0b0a6109b6d8974899691fd1dd883eca994b769f)
Saracen 1 tahun lalu
induk
melakukan
eb414422fe
1 mengubah file dengan 5 tambahan dan 1 penghapusan
  1. 5 1
      core/io/resource_loader.h

+ 5 - 1
core/io/resource_loader.h

@@ -231,7 +231,11 @@ public:
 	// Loaders can safely use this regardless which thread they are running on.
 	static void notify_dependency_error(const String &p_path, const String &p_dependency, const String &p_type) {
 		if (dep_err_notify) {
-			callable_mp_static(dep_err_notify).bind(p_path, p_dependency, p_type).call_deferred();
+			if (Thread::get_caller_id() == Thread::get_main_id()) {
+				dep_err_notify(p_path, p_dependency, p_type);
+			} else {
+				callable_mp_static(dep_err_notify).bind(p_path, p_dependency, p_type).call_deferred();
+			}
 		}
 	}
 	static void set_dependency_error_notify_func(DependencyErrorNotify p_err_notify) {