* giomodule.c: Use a separate lock for extension point registration
to avoid deadlock. Discovered by Torsten Schoenfeld
svn path=/trunk/; revision=7935
+2009-03-01 Matthias Clasen <mclasen@redhat.com>
+
+ Bug 573658 – Deadlock in giomodule.c
+
+ * giomodule.c: Use a separate lock for extension point registration
+ to avoid deadlock. Discovered by Torsten Schoenfeld
+
2009-03-01 Matthias Clasen <mclasen@redhat.com>
* gdatainputstream.c: Fix docs
return modules;
}
+G_LOCK_DEFINE_STATIC (registered_extensions);
G_LOCK_DEFINE_STATIC (loaded_dirs);
extern GType _g_fen_directory_monitor_get_type (void);
static gboolean registered_extensions = FALSE;
GIOExtensionPoint *ep;
- G_LOCK (loaded_dirs);
+ G_LOCK (registered_extensions);
if (!registered_extensions)
{
g_io_extension_point_set_required_type (ep, G_TYPE_VFS);
}
- G_UNLOCK (loaded_dirs);
+ G_UNLOCK (registered_extensions);
}
void