Skip to content

Commit 6c1364e

Browse files
MattKercherRusty Corgi
authored andcommitted
Only call GLib.idle_add if on background thread for connect_to_model
1 parent 9e4d763 commit 6c1364e

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

src/integrations/base.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,16 @@ def connect_to_model(self, model_id:str, parameter:str, callback:callable) -> st
231231
if model_id in self.loaded_models:
232232
connection_id = self.loaded_models.get(model_id).connect(
233233
'notify::{}'.format(parameter),
234-
lambda *_, p=parameter, mid=model_id, cb=callback: GLib.idle_add(cb, self.loaded_models.get(mid).get_property(p))
234+
lambda *_, p=parameter, mid=model_id, cb=callback: (
235+
cb(self.loaded_models.get(mid).get_property(p))
236+
if threading.current_thread() == threading.main_thread()
237+
else GLib.idle_add(cb, self.loaded_models.get(mid).get_property(p))
238+
)
235239
)
236-
GLib.idle_add(callback, self.loaded_models.get(model_id).get_property(parameter))
240+
if threading.current_thread() == threading.main_thread():
241+
callback(self.loaded_models.get(model_id).get_property(parameter))
242+
else:
243+
GLib.idle_add(callback, self.loaded_models.get(model_id).get_property(parameter))
237244
return connection_id
238245

239246
def save_cache_image(self, model_id:str, size:int, image_data:bytes):

0 commit comments

Comments
 (0)