[sgen] Use SGEN_ATOMIC_ADD instead of doing it by hand.
authorMark Probst <mark.probst@gmail.com>
Fri, 30 Nov 2012 20:57:16 +0000 (21:57 +0100)
committerMark Probst <mark.probst@gmail.com>
Sun, 9 Dec 2012 14:02:53 +0000 (15:02 +0100)
mono/metadata/sgen-workers.c

index 346a5ab07a56ae2d9ccd479ba837c546fa6dda1b..147989198c351b1d3bac045113e44187dc43a5f8 100644 (file)
@@ -175,9 +175,7 @@ workers_dequeue_and_do_job (WorkerData *data)
        entry->func (data, entry->data);
        sgen_free_internal (entry, INTERNAL_MEM_JOB_QUEUE_ENTRY);
 
-       do {
-               num_finished = workers_num_jobs_finished;
-       } while (InterlockedCompareExchange (&workers_num_jobs_finished, num_finished + 1, num_finished) != num_finished);
+       SGEN_ATOMIC_ADD (workers_num_jobs_finished, 1);
 
        return TRUE;
 }