Il problema si verifica su raspberry a causa del journaling di ext4 e del ritardo con il quale vengono eseguite le scritture su SD
allego il progetto, ...
hai allegato il mio esempio per vuott, se non ti spieghi meglio con il tuo esempio non sono in grado di aiutarti.
Ammesso e non concesso che una volta allegato il progetto tuo, poi io ne sia capace...
forse manca un pezzo che ho dato per scontato
Riepilogo meglio
Su raspberry a volte si verifica la corruzione del file .conf dove si salvano le configurazioni con settings
allora ho chiesto in mailing list e mi hanno confermato che alla chiusura dell'applicazione avviene in automatico il salvataggio della configurazione
Ipozizzando che il problema sia il ritardo con cui i file su ext4 con journaling e le scritture su sd e dal momento in cui alla chiusura dell'applicazione raspberry viene spento immediatamente anche in modi non "cristiani", ho tentato di creare una classe derivata da Settings introducendo una variabile che blocca la scrittura del file .conf che avviene nella routine _free() della classe settings.
All'interno dell'applicazione ad ogni salvataggio che eseguo do immediatamente dopo il comando "sync" da shell per forzare la scrittura su disco che altrimenti viene posticipata.
Pensavo che derivando la classe con inherits e sovrascrivendo la funzione _free() la cosa potesse funzionare, ma così non avviene
Al contrario Gianluigi, nel tuo esempio funziona
quindi mi è venuta la curiosità di capire come funziona inherits in questi casi.
Il problema in se lo posso risolvere inserendo il codice originale di Setting con una piccola modifica evitando quindi di selezionare il componente gb.settings, ma voglio capirci di più
Spero questa volta di essere stato piu chiaro e di aver messo tutti i pezzi che prima mancavano
Per dovere di cronaca condivido la mia esperienza
Su ext4 con journaling se si cancella un file e immediatamente dopo si toglie tensione al successivo riavvio il suddetto file possiamo ritrovarcelo ancora vivo e vegeto anche se subito dopo la cancellazione non risulta più presente al sistema operativo
Ciò è piu evidente su raspberry poichè il disco è una SD e la scrittura è molto piu lenta che su un HD
Nel caso di settings a volte mi ritrovo un file .conf con dimensione 0
La mia applicazione deve superare anche questa prova e ci ho perso un po di tempo per capire quale fosse il problema