On Thu, 2003-06-12 at 19:17, Ettore Perazzoli wrote:
> Hi Michael,
> 
> thanks for looking into this.
> 
> On Wed, 2003-06-11 at 05:36, Michael Meeks wrote:
> >     Perhaps doing a one-time recursive cache lookup of:
> > 
> >     /apps/evolution/summary/                x11
> >     /apps/evolution/shell/view_defaults/    x8
> >     /apps/evolution/mail/display/           x12
> >     /apps/evolution/calender/tasks/         x5
> >     /apps/evolution/calender/display/       x16
> > 
> >     Would save ~50 round-trips to gconfd and presumably save a number of
> > milliseconds on startup / view switch.
> > 
> >     It's also easy to fix with a few:
> > 
> >     gconf_client_add_dir (gconf_client_get_default (),
> >                           "apps/evolution/summary",
> >                           GCONF_CLIENT_PRELOAD_RECURSIVE,
> >                           NULL);
> 
> What if we just add a similar thing, but for "/apps/evolution", in the
> shell on startup?  Since all the modules are using the default
> GConfClient, that should propagate to all of them?
> 
speaking of what, here's a patch to PRELOAD_RECURSIVE in
e-config-listener.

> Although maybe it's better to have a separate GConfClient per component
> to make sure they don't react to a "value_changed" when they shouldn't.
> 
maybe all GConf uses should use the e-config-listener thing in e-util.

cheers
? e-component-listener-orbit-small.c
? e-component-listener-orbit-small.h
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/e-util/ChangeLog,v
retrieving revision 1.394
diff -u -p -r1.394 ChangeLog
--- ChangeLog   10 Jun 2003 20:44:25 -0000      1.394
+++ ChangeLog   12 Jun 2003 20:48:33 -0000
@@ -1,3 +1,8 @@
+2003-06-12  Rodrigo Moya <[EMAIL PROTECTED]>
+
+       * e-config-listener.c (add_key): use GCONF_CLIENT_PRELOAD_RECURSIVE
+       when adding watched directories to avoid GConfd round-trips.
+
 2003-05-30  Jeffrey Stedfast  <[EMAIL PROTECTED]>
 
        * e-meta.c (meta_load): Stat the file to make sure it exists
Index: e-config-listener.c
===================================================================
RCS file: /cvs/gnome/evolution/e-util/e-config-listener.c,v
retrieving revision 1.17
diff -u -p -r1.17 e-config-listener.c
--- e-config-listener.c 5 Feb 2003 21:58:38 -0000       1.17
+++ e-config-listener.c 12 Jun 2003 20:48:33 -0000
@@ -231,7 +231,7 @@ add_key (EConfigListener *cl, const char
        kd->used_default = used_default;
 
        /* add the listener for changes */
-       gconf_client_add_dir (cl->priv->db, key, GCONF_CLIENT_PRELOAD_NONE, NULL);
+       gconf_client_add_dir (cl->priv->db, key, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
        kd->lid = gconf_client_notify_add (cl->priv->db, key,
                                           (GConfClientNotifyFunc) property_change_cb,
                                           kd, NULL, NULL);

Reply via email to