reference_queue_proccess (MonoReferenceQueue *queue)
{
	RefQueueEntry **iter = &queue->queue;
	RefQueueEntry *entry;
	while ((entry = *iter)) {
		if (queue->should_be_deleted || !mono_gc_weak_link_get (&entry->dis_link)) {
			ref_list_remove_element (iter, entry);
			mono_gc_weak_link_remove (&entry->dis_link);
			queue->callback (entry->user_data);
			g_free (entry);
		} else {
			iter = &entry->next;
		}
	}
}
Weaknesses in this category are related to improper management of system resources.