Re: segnale unix
>>> 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
Reply to: