From 9346c22134f728617eab1322da679febf4bf54ef Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Wed, 15 Jan 2020 14:38:24 -0500 Subject: [PATCH] baseclass: Log if emit() called from non-MainThread Signed-off-by: Cole Robinson --- virtManager/baseclass.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/virtManager/baseclass.py b/virtManager/baseclass.py index b2c902630..5722c56f2 100644 --- a/virtManager/baseclass.py +++ b/virtManager/baseclass.py @@ -171,6 +171,10 @@ class vmmGObject(GObject.GObject): """ GObject emit() wrapper to simplify callers """ + if not self._is_main_thread(): + log.error("emitting signal from non-main thread. This is a bug " + "please report it. thread=%s self=%s signal=%s", + self._thread_name(), self, signal_name) return GObject.GObject.emit(self, signal_name, *args) def add_gsettings_handle(self, handle): @@ -207,6 +211,12 @@ class vmmGObject(GObject.GObject): t.daemon = True t.start() + def _thread_name(self): + return threading.current_thread().name + + def _is_main_thread(self): + return self._thread_name() == "MainThread" + ############################## # Custom signal/idle helpers #