Re: More love requested - g_module_open always lazy



Cool, thanks everyone.

Here's the list of g_module_open (foo, 0) calls I've found in
my 2.12 based stack.  So the gtk/pango ones are fixed and it
really doens't matter in programs like gdk-pixbuf-query-loaders.
The most important ones are the platform libraries and large apps.

Thanks,
Laca


pango-1.10.1/pango/modules.c:
      pango_module->library = g_module_open (pango_module->path, 0);
gtk+-2.8.6/gdk-pixbuf/queryloaders.c:
  module = g_module_open (path, 0);
        module = g_module_open (path, 0);
gtk+-2.8.6/gtk/gtkfilesystem.c:
  fs_module->library = g_module_open (fs_module->path, 0);
gtk+-2.8.6/gtk/queryimmodules.c:
  module = g_module_open (path, 0);
gtk+-2.8.6/gtk/gtkimmodule.c:
  im_module->library = g_module_open (im_module->path, 0);
gtk+-2.8.6/gtk/gtkthemes.c:
  engine->library = g_module_open (engine_path, 0);
libglade-2.5.1/glade/glade-xml.c:
    allsymbols = g_module_open(NULL, 0);
    allsymbols = g_module_open(NULL, 0);
GConf-2.12.0/gconf/gconf-backend.c:
          module = g_module_open(file, 0);
gnome-pilot-2.0.13/libgpilotdCM/gnome-pilot-conduit-management.c:
                if ((dlhandle = g_module_open (location,0))==NULL) {
gnome-applets-2.12.1/libgswitchit/gswitchit_plugin_manager.c:
                        GModule *module = g_module_open (fullPath, 0);
nautilus-2.12.1/libnautilus-private/nautilus-module.c:
        module->library = g_module_open (module->path, 0);
gimp-2.3.4/libgimpmodule/gimpmodule.c:
  module->module = g_module_open (module->filename, 0);
control-center-2.12.1/libgswitchit/gswitchit_plugin_manager.c:
                        GModule *module = g_module_open (fullPath, 0);
gnome-games-2.12.1/gnome-stones/object.c:
  plugin->handle= g_module_open (filename, 0);
gaim-1.5.0/src/plugin.c:
                plugin->handle = g_module_open(filename, 0);
planner-0.13/libplanner/mrp-storage-module-factory.c:
        factory->library = g_module_open (factory->name, 0);
planner-0.13/src/planner-plugin-loader.c:
        plugin->handle = g_module_open (file, 0);
planner-0.13/src/planner-view-loader.c:
        view->handle = g_module_open (file, 0);
glade-2.10.1/glade/glade_plugin.c:
  module = g_module_open (library_file, 0);
thunderbird-1.5b1/intl/ctl/src/pangoLite/modules.c:
      module = g_module_open(module_name, 0);
thunderbird-1.5b1/intl/ctl/src/pangoLite/querymodules.c:
  module = g_module_open (path, 0);
xchat-2.4.5/src/common/plugin.c:
        handle = g_module_open (filename, 0);
xchat-2.4.5/src/common/plugin.c:
        handle = g_module_open (filename, 0);
evolution-data-server-1.4.1.1/camel/camel-provider.c:
        module = g_module_open (path, 0);
evolution-data-server-1.4.1.1/libedataserver/e-data-server-module.c:
        module->library = g_module_open (module->path, 0);
evolution-2.4.1/e-util/e-plugin.c:
                if ((epl->module = g_module_open(epl->location, 0)) == NULL) {
firefox-1.5b2/intl/ctl/src/pangoLite/modules.c:
      module = g_module_open(module_name, 0);
firefox-1.5b2/intl/ctl/src/pangoLite/querymodules.c:
  module = g_module_open (path, 0);



On Thu, 2005-10-27 at 09:33 +0100, John Rice wrote:
> Hi,
> 
> Just posting this to follow up on the g_module_open issue uncovered by 
> laca at the Gnome Boston Summit. Should always use the RTLD_LAZY flag. 
> If we don't we can get performance hit on startup for large apps such as 
> Firefox.
> 
> Matthias has made the changes for Gkt+ but others are out there lurking 
> in the stack. So if anyone feels like some house cleaning go for it.
> 
> I'll see if we can't a few bods to do some of this as well as the 
> g_return* macro cleanup as well.
> 
> JR
> 
> http://bugzilla.gnome.org/show_bug.cgi?id=319557
> 
> 
> ------- Additional Comments From Matthias Clasen  2005-10-27 03:52 -------
> I have changed all calls in GTK+, and I can probably convince Behdad to 
> fix the
> one in Pango. It might be worth posting this information to the new
> performance-list, to get some janitorial effort going.
> 
> 




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