summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-07-08 19:13:45 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-07-08 19:13:45 +0200
commit16f98cd7079c2b22248ec358371f17bca355e42e (patch)
tree0aa22b2244db510560c75ddb98ea5fc3181b07f2
parent6deaa15590d7a939b6fb13f505cf1611b26ed141 (diff)
parent20298fbf079b6ddd74ac13a6321b310a34b52d71 (diff)
downloadredot-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.cpp6
-rw-r--r--editor/editor_log.h2
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();