Re: The GDK lock in tinymail



I found a problem in tny_camel_folder_poke_status_default. Its last
execute_callback should not pass g_main_depth() but a number > 0.

This will be fixed in the final commit, of course.

On Sun, 2007-08-05 at 00:03 +0200, Philip Van Hoof wrote:
> And the patch grows ...
> 
> This version of the patch adds GDK lock correctness for g_signal_emit
> situations. A few are left uncovered as those require some
> infrastructure changes (for example in TnyMergeFolder we don't yet have
> the ui_lock).
> 
> 
> On Sat, 2007-08-04 at 12:01 +0200, Philip Van Hoof wrote:
> > On Fri, 2007-08-03 at 18:51 +0100, Rob Taylor wrote:
> > > Philip Van Hoof wrote:
> > > > This patch makes Tinymail's callbacks and observer's updates behave like
> > > > signals in Gtk+.
> > > > 
> > > > Please review extensively 
> > 
> > > That's quite a complex patch! Could you explain it a bit?
> > 
> > o. The notify_folder_observers, and notify_folder_store_observers got a
> >    _in_idle equivalent that will throw the function call into the
> >    GMainLoop using a g_idle_add_full. This was done to in a generic way
> >    escape the GDK lock or throw the call out of a thread
> > 
> > o. All locations where folder observers are now called, are in the
> >    GMainLoop or at locations where it makes sense to lock the GDK lock
> > 
> > o. All tny_folder_store_observer_update and tny_folder_observer_update
> >    have been wrapped with tny_lockable_lock and tny_lockable_unlock
> > 
> > o. All callbacks have been wrapped with tny_lockable_lock and
> >    tny_lockable_unlock
> > 
> > o. notify_folder_observers_about_copy got rewritten
> > 
> > o. inform_observers_about_transfer got renamed to
> >    notify_folder_observers_about_transfer
> > 
> > o. tny_camel_account_get_supported_secure_authentication got rewritten
> > 
> > o. tny_gtk_folder_store_tree_model_folder_obsr_update got rewritten (it
> >    assumed that it got called from a thread, which is not the case
> >    anymore)
> > 
> > o. tny_gtk_folder_store_tree_model_store_obsr_update got rewritten (it
> >    assumed that it got called from a thread, which is not the case
> >    anymore)
> > 
> > o. All status_callback invokes got wrapped by tny_lockable_lock and
> >    tny_lockable_unlock (in tny-progress-info.c)
> > 
> > 
> _______________________________________________
> tinymail-devel-list mailing list
> tinymail-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/tinymail-devel-list
-- 
Philip Van Hoof, software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://www.pvanhoof.be/blog







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