From a86a025d9aea0b314f8aea99a652eb37aea60bac Mon Sep 17 00:00:00 2001 From: Terry Geng Date: Fri, 29 May 2020 14:52:54 +0800 Subject: [PATCH] fix: pymumble callback function jammed the loop in pymumble, fixed #164 --- mumbleBot.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mumbleBot.py b/mumbleBot.py index 724b76e..b3da2df 100644 --- a/mumbleBot.py +++ b/mumbleBot.py @@ -141,8 +141,10 @@ class MumbleBot: "Unknown action for when_nobody_in_channel" if var.config.get("bot", "when_nobody_in_channel", fallback='') in ['pause', 'pause_resume', 'stop']: - self.mumble.callbacks.set_callback(pymumble.constants.PYMUMBLE_CLBK_USERREMOVED, self.users_changed) - self.mumble.callbacks.set_callback(pymumble.constants.PYMUMBLE_CLBK_USERUPDATED, self.users_changed) + user_change_callback = \ + lambda user, action: threading.Thread(target=self.users_changed, args=(user, action), daemon=True).start() + self.mumble.callbacks.set_callback(pymumble.constants.PYMUMBLE_CLBK_USERREMOVED, user_change_callback) + self.mumble.callbacks.set_callback(pymumble.constants.PYMUMBLE_CLBK_USERUPDATED, user_change_callback) # Debug use self._loop_status = 'Idle'