]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
interfaces: Remove presence handler after use
authorAlessandro Astone <ales.astone@gmail.com>
Fri, 27 Jan 2023 16:20:38 +0000 (17:20 +0100)
committerAlessandro Astone <ales.astone@gmail.com>
Fri, 27 Jan 2023 16:21:05 +0000 (17:21 +0100)
tools/interfaces/IPlatform.py
tools/interfaces/IStatusBarService.py

index 12d1e1da2e11a5d5137933e441d037eeb5680944..67f8a3ed67b2bddbd1170741c082af1f920ca66d 100644 (file)
@@ -326,10 +326,11 @@ def get_service(args):
 # Like ServiceManager.wait() but can be interrupted
 def wait_for_manager(sm):
     mainloop = GLib.MainLoop()
 # Like ServiceManager.wait() but can be interrupted
 def wait_for_manager(sm):
     mainloop = GLib.MainLoop()
-    sm.add_presence_handler(lambda: mainloop.quit() if sm.is_present() else None)
+    hndl = sm.add_presence_handler(lambda: mainloop.quit() if sm.is_present() else None)
     GLib.timeout_add_seconds(60, lambda: mainloop.quit())
     GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGINT, lambda _: mainloop.quit(), None)
     mainloop.run()
     GLib.timeout_add_seconds(60, lambda: mainloop.quit())
     GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGINT, lambda _: mainloop.quit(), None)
     mainloop.run()
+    sm.remove_handler(hndl)
     if not sm.is_present():
         return False
     return True
     if not sm.is_present():
         return False
     return True
index af572dd37d9a394170b2c3ad71f4bcbc047fb210..d4dad605f6924cdfd270210aa1ff111045674320 100644 (file)
@@ -73,10 +73,11 @@ def get_service(args):
 # Like ServiceManager.wait() but can be interrupted
 def wait_for_manager(sm):
     mainloop = GLib.MainLoop()
 # Like ServiceManager.wait() but can be interrupted
 def wait_for_manager(sm):
     mainloop = GLib.MainLoop()
-    sm.add_presence_handler(lambda: mainloop.quit() if sm.is_present() else None)
+    hndl = sm.add_presence_handler(lambda: mainloop.quit() if sm.is_present() else None)
     GLib.timeout_add_seconds(60, lambda: mainloop.quit())
     GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGINT, lambda _: mainloop.quit(), None)
     mainloop.run()
     GLib.timeout_add_seconds(60, lambda: mainloop.quit())
     GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGINT, lambda _: mainloop.quit(), None)
     mainloop.run()
+    sm.remove_handler(hndl)
     if not sm.is_present():
         return False
     return True
     if not sm.is_present():
         return False
     return True