Add hb_mutex_free() and use it

Based on patch by Bradley Grainger.
This commit is contained in:
Behdad Esfahbod 2011-05-02 20:57:28 -04:00
parent 8d5186484b
commit f55272ecde
2 changed files with 10 additions and 7 deletions

View File

@ -158,6 +158,7 @@ hb_blob_destroy (hb_blob_t *blob)
if (!hb_object_destroy (blob)) return;
_hb_blob_destroy_user_data (blob);
hb_mutex_free (blob->lock);
free (blob);
}

View File

@ -234,10 +234,11 @@ typedef volatile int hb_atomic_int_t;
typedef GStaticMutex hb_mutex_t;
#define HB_MUTEX_INIT G_STATIC_MUTEX_INIT
#define hb_mutex_init(M) g_static_mutex_init (&M)
#define hb_mutex_lock(M) g_static_mutex_lock (&M)
#define hb_mutex_trylock(M) g_static_mutex_trylock (&M)
#define hb_mutex_unlock(M) g_static_mutex_unlock (&M)
#define hb_mutex_init(M) g_static_mutex_init (&(M))
#define hb_mutex_lock(M) g_static_mutex_lock (&(M))
#define hb_mutex_trylock(M) g_static_mutex_trylock (&(M))
#define hb_mutex_unlock(M) g_static_mutex_unlock (&(M))
#define hb_mutex_free(M) g_static_mutex_free (&(M))
#else
@ -257,10 +258,11 @@ typedef volatile int hb_atomic_int_t;
typedef volatile int hb_mutex_t;
#define HB_MUTEX_INIT 0
#define hb_mutex_init(M) HB_STMT_START { (M) = 0; } HB_STMT_END
#define hb_mutex_lock(M) HB_STMT_START { (M) = 1; } HB_STMT_END
#define hb_mutex_init(M) ((void) ((M) = 0))
#define hb_mutex_lock(M) ((void) ((M) = 1))
#define hb_mutex_trylock(M) ((M) = 1, 1)
#define hb_mutex_unlock(M) HB_STMT_START { (M) = 0; } HB_STMT_END
#define hb_mutex_unlock(M) ((void) ((M) = 0))
#define hb_mutex_free(M) ((void) ((M) = 2))
#endif