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 | |
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
-rw-r--r-- | editor/editor_log.cpp | 6 | ||||
-rw-r--r-- | editor/editor_log.h | 2 |
2 files changed, 2 insertions, 6 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() { diff --git a/editor/editor_log.h b/editor/editor_log.h index 7012a2a43c..9c652e912a 100644 --- a/editor/editor_log.h +++ b/editor/editor_log.h @@ -156,8 +156,6 @@ private: ErrorHandlerList eh; - Thread::ID current; - //void _dragged(const Point2& p_ofs); void _meta_clicked(const String &p_meta); void _clear_request(); |