[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: