Re: Patch: some referencing problems fixes



All approved.

Great work, thanks a lot!

On Tue, 2008-06-24 at 19:28 +0200, José Dapena Paz wrote:
> 	Hi,
> 
> 	This patch fixes some reference problems (leaks and cycles) detected in
> modest. We wanted to make as sure as we could that no pending threads
> were running when camel shutdown happened (to reduce risk of getting the
> infamous __nptl_deallocate_tsd crash).
> 
> 	The main problem is that we weren't able to warrant that the imap idle
> thread would die before camel shutdown happens. I changed a bit the code
> to force waiting for idle thread finishing (and freeing the camel imap
> store and folder then).
> 
> 	About TnyDevice  reference in TnySessionCamel we make it explicit. We
> include other leak fixes.
> 
> 	And finally, I added code to avoid getting folders again when we get a
> notification of disconnection of the store in folder view.
> 
> Changelog would be:
> * libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c:
>         * Don't set in_idle to false so that join works properly.
>         * On disconnecting we forze a stop_idle so we warrant idle
>           thread has died when we disconnect.
>         * Send let idle die commands on disconnecting.
>         * It's very important to make the idle thread die on time as it
>           keeps a reference to the folder. Folder keeps a reference to
>           this store, and then store should finish idle soon to be able
>           to finalize (cycle reference).
> * libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c:
>         * On finishing the idle thread we state we're out of it.    
> * libtinymail-camel/camel-lite/camel.c:
>         * Avoid running internal methods of camel_shutdown two times if
>           we can call shutdown two times.               
> * libtinymail-camel/tny-session-camel.c:
>         * Keep a proper reference to TnyDevice.
> * libtinymail-camel/tny-camel-store-account.c:
>         * Free the iter store reference on finalising.
> * libtinymail-camel/tny-camel-account.c:
>         * Set service to null after unreffing it.
> * libtinymailui-gtk/tny-gtk-folder-store-tree-model.c:
>         * Don't get folders again when we change status to disconnected.
> 
> 
> _______________________________________________
> tinymail-devel-list mailing list
> tinymail-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/tinymail-devel-list



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