Le jeu, 24/06/2004 à 23:48 -0400, Havoc Pennington a écrit : > On Tue, 2004-06-22 at 04:49, Josselin Mouette wrote: > > > > Oh, I see. But maybe it's a bit overkill: wouldn't it be simpler to just > > use the periodic cleanup function which is already run every 30s? > > Compared with the time an upgrade generally takes, waiting for at most > > 30s for the new schemas to be available would be enough. > > That sounds fine to me. OK, do you think the attached implementation is correct? -- .''`. Josselin Mouette /\./\ : :' : josselin mouette ens-lyon org `. `' joss debian org `- Debian GNU/Linux -- The power of freedom
--- GConf-2.6.1/gconf/gconfd.c.old 2004-06-21 16:16:50.000000000 +0200 +++ GConf-2.6.1/gconf/gconfd.c 2004-06-21 16:26:45.000000000 +0200 @@ -120,6 +120,13 @@ static gboolean in_shutdown = FALSE; +/* + * This flags indicates we received a signal asking for the reload of + * all databases. + */ + +static gboolean need_db_reload = FALSE; + /* * CORBA goo */ @@ -397,7 +404,6 @@ break; case SIGTERM: - case SIGHUP: enter_shutdown (); /* let the fatal signals interrupt us */ @@ -410,6 +416,13 @@ gconf_main_quit (); break; + case SIGHUP: + --in_fatal; + + /* reload databases on next main loop */ + need_db_reload = TRUE; + break; + case SIGUSR1: --in_fatal; @@ -746,7 +759,17 @@ static gboolean periodic_cleanup_timeout(gpointer data) -{ +{ + if (need_db_reload) + { + need_db_reload = FALSE; + gconf_log (GCL_INFO, _("Reloading all databases")); + /* Regenerate the databases from the default sources */ + shutdown_databases (); + init_databases (); + gconf_server_load_sources (); + } + gconf_log (GCL_DEBUG, "Performing periodic cleanup, expiring cache cruft"); drop_old_clients ();
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=