diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-08 19:13:45 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-08 19:13:45 +0200 |
commit | 16f98cd7079c2b22248ec358371f17bca355e42e (patch) | |
tree | 0aa22b2244db510560c75ddb98ea5fc3181b07f2 /editor/editor_log.cpp | |
parent | 6deaa15590d7a939b6fb13f505cf1611b26ed141 (diff) | |
parent | 20298fbf079b6ddd74ac13a6321b310a34b52d71 (diff) | |
download | redot-engine-16f98cd7079c2b22248ec358371f17bca355e42e.tar.gz |
Merge pull request #94079 from RandomShaper/editor_main_mq
Let EditorLog use the right call queue for thread safety
Diffstat (limited to 'editor/editor_log.cpp')
-rw-r--r-- | editor/editor_log.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp index 6a016c217a..0dfbcd0e0d 100644 --- a/editor/editor_log.cpp +++ b/editor/editor_log.cpp @@ -58,8 +58,8 @@ void EditorLog::_error_handler(void *p_self, const char *p_func, const char *p_f MessageType message_type = p_type == ERR_HANDLER_WARNING ? MSG_TYPE_WARNING : MSG_TYPE_ERROR; - if (self->current != Thread::get_caller_id()) { - callable_mp(self, &EditorLog::add_message).call_deferred(err_str, message_type); + if (!Thread::is_main_thread()) { + MessageQueue::get_main_singleton()->push_callable(callable_mp(self, &EditorLog::add_message), err_str, message_type); } else { self->add_message(err_str, message_type); } @@ -557,8 +557,6 @@ EditorLog::EditorLog() { eh.errfunc = _error_handler; eh.userdata = this; add_error_handler(&eh); - - current = Thread::get_caller_id(); } void EditorLog::deinit() { |