From c9cfa7d1d55291503c8adb8a1cca24781e4a8da4 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Thu, 31 Oct 2013 23:03:58 +0100 Subject: [PATCH] gthread-posix: Don't use gslice allocated GRecMutex This leads to problems during cleanup, and seems strange to have locks defined in terms of things that need locking. https://bugzilla.gnome.org/show_bug.cgi?id=711753 --- glib/gthread-posix.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c index f5037d0b1..786dcb49a 100644 --- a/glib/gthread-posix.c +++ b/glib/gthread-posix.c @@ -268,7 +268,10 @@ g_rec_mutex_impl_new (void) pthread_mutexattr_t attr; pthread_mutex_t *mutex; - mutex = g_slice_new (pthread_mutex_t); + mutex = malloc (sizeof (pthread_mutex_t)); + if G_UNLIKELY (mutex == NULL) + g_thread_abort (errno, "malloc"); + pthread_mutexattr_init (&attr); pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init (mutex, &attr); @@ -281,7 +284,7 @@ static void g_rec_mutex_impl_free (pthread_mutex_t *mutex) { pthread_mutex_destroy (mutex); - g_slice_free (pthread_mutex_t, mutex); + free (mutex); } static pthread_mutex_t *