[profiler] Fix usage of the lock-free queue API.
authorAlex Rønne Petersen <alexrp@xamarin.com>
Thu, 7 Apr 2016 23:18:09 +0000 (01:18 +0200)
committerAlex Rønne Petersen <alexrp@xamarin.com>
Fri, 8 Apr 2016 00:53:27 +0000 (02:53 +0200)
* Free nodes hazardously.
* No need to unpoison nodes since we're not reusing them.
* Fix memory leak when emptying coverage queues.

mono/profiler/proflog.c

index 3d9079f45f73bcea0397a83985bbd5dc445a68de..816f7240e9b5f17d1489dc15f921a301d17b0925 100644 (file)
@@ -3516,7 +3516,7 @@ count_queue (MonoLockFreeQueue *queue)
 
        while ((node = mono_lock_free_queue_dequeue (queue))) {
                count++;
-               mono_lock_free_queue_node_free (node);
+               mono_thread_hazardous_try_free (node, free);
        }
 
        return count;
@@ -4352,7 +4352,7 @@ handle_writer_queue_entry (MonoProfiler *prof)
 
                dump_buffer (prof, entry->buffer);
 
-               free (entry);
+               mono_thread_hazardous_try_free (entry, free);
 
                return TRUE;
        }