summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2009-09-23 15:12:15 +0200
committerEdward Hervey <bilboed@bilboed.com>2009-09-23 15:12:15 +0200
commit342aff84a12a1ccd6937229364e9ad2f9ac3e619 (patch)
treeb553485cec79fbff416c098b5ac5b318a83af1cf
parentf6dd644a73db84919b0008aad509436d152ef386 (diff)
gtype: Use the READ_LOCK in g_type_class_unrefcontention-rwlock
-rw-r--r--gobject/gtype.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gobject/gtype.c b/gobject/gtype.c
index f0f3e8dfb..1f8b075ca 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -2724,14 +2724,14 @@ g_type_class_unref (gpointer g_class)
g_return_if_fail (g_class != NULL);
node = lookup_type_node_I (class->g_type);
- G_WRITE_LOCK (&type_rw_lock);
+ G_READ_LOCK (&type_rw_lock);
if (node && node->is_classed && node->data &&
node->data->class.class == class && node->data->common.ref_count > 0)
- type_data_unref_WmREC (node, FALSE);
+ type_data_unref_R (node, FALSE);
else
g_warning ("cannot unreference class of invalid (unclassed) type `%s'",
type_descriptive_name_I (class->g_type));
- G_WRITE_UNLOCK (&type_rw_lock);
+ G_READ_UNLOCK (&type_rw_lock);
}
/**
@@ -2751,15 +2751,15 @@ g_type_class_unref_uncached (gpointer g_class)
g_return_if_fail (g_class != NULL);
- G_WRITE_LOCK (&type_rw_lock);
node = lookup_type_node_I (class->g_type);
+ G_READ_LOCK (&type_rw_lock);
if (node && node->is_classed && node->data &&
node->data->class.class == class && node->data->common.ref_count > 0)
- type_data_unref_WmREC (node, TRUE);
+ type_data_unref_R (node, TRUE);
else
g_warning ("cannot unreference class of invalid (unclassed) type `%s'",
type_descriptive_name_I (class->g_type));
- G_WRITE_UNLOCK (&type_rw_lock);
+ G_READ_UNLOCK (&type_rw_lock);
}
/**