[glib] gthread-posix: Don't use gslice allocated GRecMutex



commit c9cfa7d1d55291503c8adb8a1cca24781e4a8da4
Author: Stef Walter <stefw gnome org>
Date:   Thu Oct 31 23:03:58 2013 +0100

    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 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c
index f5037d0..786dcb4 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 *


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