Make notify_dependency_error only defer calls if called from secondary threads.

(cherry picked from commit 0b0a6109b6)
This commit is contained in:
Saracen 2023-09-24 13:43:10 +01:00 committed by Yuri Sizov
parent 3d47a3662f
commit eb414422fe
1 changed files with 5 additions and 1 deletions

View File

@ -231,7 +231,11 @@ public:
// Loaders can safely use this regardless which thread they are running on. // 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) { static void notify_dependency_error(const String &p_path, const String &p_dependency, const String &p_type) {
if (dep_err_notify) { 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) { static void set_dependency_error_notify_func(DependencyErrorNotify p_err_notify) {