summaryrefslogtreecommitdiffstats
path: root/core/io/resource_loader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/io/resource_loader.cpp')
-rw-r--r--core/io/resource_loader.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp
index ff563a35b2..11af174890 100644
--- a/core/io/resource_loader.cpp
+++ b/core/io/resource_loader.cpp
@@ -242,6 +242,7 @@ ResourceLoader::LoadToken::~LoadToken() {
}
Ref<Resource> ResourceLoader::_load(const String &p_path, const String &p_original_path, const String &p_type_hint, ResourceFormatLoader::CacheMode p_cache_mode, Error *r_error, bool p_use_sub_threads, float *r_progress) {
+ print_line("_load", p_path);
load_nesting++;
if (load_paths_stack->size()) {
thread_load_mutex.lock();
@@ -260,12 +261,14 @@ Ref<Resource> ResourceLoader::_load(const String &p_path, const String &p_origin
if (!loader[i]->recognize_path(p_path, p_type_hint)) {
continue;
}
+ print_line("found a resource loader", loader[i]->get_class_name(), p_path);
found = true;
res = loader[i]->load(p_path, !p_original_path.is_empty() ? p_original_path : p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode);
if (!res.is_null()) {
break;
}
}
+ print_line("end looking for resource loaders", p_path);
load_paths_stack->resize(load_paths_stack->size() - 1);
load_nesting--;
@@ -288,11 +291,14 @@ Ref<Resource> ResourceLoader::_load(const String &p_path, const String &p_origin
void ResourceLoader::_thread_load_function(void *p_userdata) {
ThreadLoadTask &load_task = *(ThreadLoadTask *)p_userdata;
+ print_line("_thread_load_function", load_task.remapped_path);
+
thread_load_mutex.lock();
caller_task_id = load_task.task_id;
if (cleaning_tasks) {
load_task.status = THREAD_LOAD_FAILED;
thread_load_mutex.unlock();
+ print_line("_thread_load_function aborting 1", load_task.remapped_path);
return;
}
thread_load_mutex.unlock();
@@ -434,12 +440,18 @@ Error ResourceLoader::load_threaded_request(const String &p_path, const String &
}
Ref<Resource> ResourceLoader::load(const String &p_path, const String &p_type_hint, ResourceFormatLoader::CacheMode p_cache_mode, Error *r_error) {
+ for (int i = 0; i < loader_count; i++) {
+ print_line("Handles GDScript:", loader[i]->handles_type("GDScript"));
+ }
+
+ print_line("loading", p_path);
if (r_error) {
*r_error = OK;
}
Ref<LoadToken> load_token = _load_start(p_path, p_type_hint, LOAD_THREAD_FROM_CURRENT, p_cache_mode);
if (!load_token.is_valid()) {
+ print_line("load token invalid", p_path);
if (r_error) {
*r_error = FAILED;
}
@@ -451,6 +463,7 @@ Ref<Resource> ResourceLoader::load(const String &p_path, const String &p_type_hi
}
Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path, const String &p_type_hint, LoadThreadMode p_thread_mode, ResourceFormatLoader::CacheMode p_cache_mode) {
+ print_line("_load_start", p_path, p_cache_mode);
String local_path = _validate_local_path(p_path);
Ref<LoadToken> load_token;
@@ -462,6 +475,7 @@ Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path,
MutexLock thread_load_lock(thread_load_mutex);
if (thread_load_tasks.has(local_path)) {
+ print_line("_load_start token already exists", p_path);
load_token = Ref<LoadToken>(thread_load_tasks[local_path].load_token);
if (!load_token.is_valid()) {
// The token is dying (reached 0 on another thread).
@@ -469,6 +483,7 @@ Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path,
thread_load_tasks[local_path].load_token->clear();
} else {
if (p_cache_mode != ResourceFormatLoader::CACHE_MODE_IGNORE) {
+ print_line("_load_start token already exists return", p_path);
return load_token;
}
}
@@ -490,6 +505,7 @@ Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path,
if (p_cache_mode == ResourceFormatLoader::CACHE_MODE_REUSE) {
Ref<Resource> existing = ResourceCache::get_ref(local_path);
if (existing.is_valid()) {
+ print_line("existing is valid", p_path);
//referencing is fine
load_task.resource = existing;
load_task.status = THREAD_LOAD_LOADED;
@@ -512,6 +528,7 @@ Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path,
}
run_on_current_thread = must_not_register || p_thread_mode == LOAD_THREAD_FROM_CURRENT;
+ print_line("_load_start run on current thread", run_on_current_thread, p_path);
if (run_on_current_thread) {
load_task_ptr->thread_id = Thread::get_caller_id();