>>> Semplicemente terminando il dbus-daemon. il mio demone esce dal > mainloop >>> >>> def run(self): >>> DBusGMainLoop(set_as_default=True) >>> self.mainloop = gobject.MainLoop() >>> gobject.threads_init() >>> >>> Idee su come si possa "forzare" l'uscita dal mainloop a >> compiere delle >>> azioni prima di terminare ? >> >> Ma sono azioni che devono sempre essere eseguite? In tal caso, molto >> velocemente potresti usare: >> 1) try...finally >> 2) il modulo atexit >> >> Ma il punto 1 dovrebbe bastare. >> > > Avevo già provato con il try... finally. > Non funziona. Il mainloop() semplicemente si interrompe. > Do un'occhiata al modulo atexit (sperando che non sia un wrapper di > try...finally) >
Ho provato il modulo atexit. Ottengo un comportamento bizzarro. Sembra che la funzione chiamata da "atexit" venga "vista" ma non eseguita. Infatti il mainloop() si interrompe e basta. Come controprova ho prova richiamo da atexit una funzione che non esiste: In questo caso il thread che gestisce il dbus non parte. P.S. Il demone è composto da due threads: il primo compie dalle azioni intercettando degli eventi sul file system; il secondo si registra sul dbus ed espone dei metodi per essere interrogato. Walter -- Per REVOCARE l'iscrizione alla lista, inviare un email a [email protected] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [email protected] To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

