Merge pull request #93091 from RandomShaper/remove_false_safety

Remove no longer needed thread safety measures
This commit is contained in:
Rémi Verschelde 2024-06-14 17:13:31 +02:00
commit 75eb8ad510
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -40,12 +40,7 @@
#include <stdio.h> #include <stdio.h>
void Resource::emit_changed() { void Resource::emit_changed() {
if (ResourceLoader::is_within_load() && !Thread::is_main_thread()) { emit_signal(CoreStringName(changed));
// Let the connection happen on the main thread, later, since signals are not thread-safe.
call_deferred("emit_signal", CoreStringName(changed));
} else {
emit_signal(CoreStringName(changed));
}
} }
void Resource::_resource_path_changed() { void Resource::_resource_path_changed() {
@ -166,22 +161,12 @@ bool Resource::editor_can_reload_from_file() {
} }
void Resource::connect_changed(const Callable &p_callable, uint32_t p_flags) { void Resource::connect_changed(const Callable &p_callable, uint32_t p_flags) {
if (ResourceLoader::is_within_load() && !Thread::is_main_thread()) {
// Let the check and connection happen on the main thread, later, since signals are not thread-safe.
callable_mp(this, &Resource::connect_changed).call_deferred(p_callable, p_flags);
return;
}
if (!is_connected(CoreStringName(changed), p_callable) || p_flags & CONNECT_REFERENCE_COUNTED) { if (!is_connected(CoreStringName(changed), p_callable) || p_flags & CONNECT_REFERENCE_COUNTED) {
connect(CoreStringName(changed), p_callable, p_flags); connect(CoreStringName(changed), p_callable, p_flags);
} }
} }
void Resource::disconnect_changed(const Callable &p_callable) { void Resource::disconnect_changed(const Callable &p_callable) {
if (ResourceLoader::is_within_load() && !Thread::is_main_thread()) {
// Let the check and disconnection happen on the main thread, later, since signals are not thread-safe.
callable_mp(this, &Resource::disconnect_changed).call_deferred(p_callable);
return;
}
if (is_connected(CoreStringName(changed), p_callable)) { if (is_connected(CoreStringName(changed), p_callable)) {
disconnect(CoreStringName(changed), p_callable); disconnect(CoreStringName(changed), p_callable);
} }