summaryrefslogtreecommitdiff
path: root/girepository/girepository.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/girepository.c')
-rw-r--r--girepository/girepository.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/girepository/girepository.c b/girepository/girepository.c
index b5c30297..ccdd3611 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -35,7 +35,6 @@
#include "config.h"
-static GStaticMutex globals_lock = G_STATIC_MUTEX_INIT;
static GIRepository *default_repository = NULL;
static GSList *search_path = NULL;
static GSList *override_search_path = NULL;
@@ -134,12 +133,13 @@ g_irepository_class_init (GIRepositoryClass *class)
static void
init_globals (void)
{
- g_static_mutex_lock (&globals_lock);
+ static gsize initialized = 0;
+
+ if (!g_once_init_enter (&initialized))
+ return;
if (default_repository == NULL)
- {
- default_repository = g_object_new (G_TYPE_IREPOSITORY, NULL);
- }
+ default_repository = g_object_new (G_TYPE_IREPOSITORY, NULL);
if (search_path == NULL)
{
@@ -184,7 +184,7 @@ init_globals (void)
search_path = g_slist_reverse (search_path);
}
- g_static_mutex_unlock (&globals_lock);
+ g_once_init_leave (&initialized, 1);
}
void