From: Ludovic Henry Date: Thu, 2 Jun 2016 21:25:04 +0000 (+0200) Subject: [sgen] Use raw mutex for pin_queue_mutex as it's only used during a collection X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=bea97b9d05fbb675bce541647d77b7c15d41fe03;p=mono.git [sgen] Use raw mutex for pin_queue_mutex as it's only used during a collection --- diff --git a/mono/sgen/sgen-pinning.c b/mono/sgen/sgen-pinning.c index cfe3db1acd0..6b2b2e33547 100644 --- a/mono/sgen/sgen-pinning.c +++ b/mono/sgen/sgen-pinning.c @@ -26,7 +26,7 @@ static size_t last_num_pinned = 0; * stay pinned, which means they can't move, therefore they can be scanned. */ static SgenPointerQueue pin_queue_objs; -static MonoCoopMutex pin_queue_mutex; +static mono_mutex_t pin_queue_mutex; #define PIN_HASH_SIZE 1024 static void *pin_hash_filter [PIN_HASH_SIZE]; @@ -34,13 +34,13 @@ static void *pin_hash_filter [PIN_HASH_SIZE]; void sgen_pinning_init (void) { - mono_coop_mutex_init (&pin_queue_mutex); + mono_os_mutex_init (&pin_queue_mutex); } void sgen_init_pinning (void) { - mono_coop_mutex_lock (&pin_queue_mutex); + mono_os_mutex_lock (&pin_queue_mutex); memset (pin_hash_filter, 0, sizeof (pin_hash_filter)); pin_queue.mem_type = INTERNAL_MEM_PIN_QUEUE; sgen_pointer_queue_clear (&pin_queue_objs); @@ -51,7 +51,7 @@ sgen_finish_pinning (void) { last_num_pinned = pin_queue.next_slot; sgen_pointer_queue_clear (&pin_queue); - mono_coop_mutex_unlock (&pin_queue_mutex); + mono_os_mutex_unlock (&pin_queue_mutex); } void @@ -66,12 +66,12 @@ sgen_scan_pin_queue_objects (ScanCopyContext ctx) int i; ScanObjectFunc scan_func = ctx.ops->scan_object; - mono_coop_mutex_lock (&pin_queue_mutex); + mono_os_mutex_lock (&pin_queue_mutex); for (i = 0; i < pin_queue_objs.next_slot; ++i) { GCObject *obj = (GCObject *)pin_queue_objs.data [i]; scan_func (obj, sgen_obj_get_descriptor_safe (obj), ctx.queue); } - mono_coop_mutex_unlock (&pin_queue_mutex); + mono_os_mutex_unlock (&pin_queue_mutex); } void