static void desc_retire (Descriptor *desc) { g_assert (desc->anchor.data.state == STATE_EMPTY); g_assert (desc->in_use); desc->in_use = FALSE; free_sb (desc->sb, desc->block_size); mono_thread_hazardous_free_or_queue (desc, desc_enqueue_avail, FALSE, TRUE); }
static void desc_retire (Descriptor *desc) { g_assert (desc->anchor.data.state == STATE_EMPTY); g_assert (desc->in_use); desc->in_use = FALSE; free_sb (desc->sb, desc->block_size, desc->heap->account_type); mono_thread_hazardous_try_free (desc, desc_enqueue_avail); }
static void desc_retire (Descriptor *desc) { free_sb (desc->sb, desc->block_size); mono_lock_free_queue_enqueue (&available_descs, &desc->node); }