diff options
author | Mark Probst <mark.probst@gmail.com> | 2012-11-15 19:05:20 +0400 |
---|---|---|
committer | Mark Probst <mark.probst@gmail.com> | 2012-12-09 18:02:47 +0400 |
commit | 3f011fdb1d5afcb204821af8628830e7c4cbd050 (patch) | |
tree | 39e0ede65a3ceb15a678535c878e923765cc928d /data | |
parent | bd8d79a4423443c87a4c8cda4b26fc984d922a2b (diff) |
[sgen] Fix locking of the worker distribute gray queue.
The worker distribute gray queue is written to by the main GC thread
and read from by the worker thread(s) for work distribution. Locking it is
therefore necessary, but we weren't doing it properly.
Previously I implemented optional locking for gray queues, but that's a
bad idea because it makes the enqueue fast path slower. Now gray queues
are back to non-locking, but we have a new queue type, the section gray
queue, which is only accessible on a gray queue section granularity, not
on an individual object granularity, like regular gray queues. Performance
there is not as critical, so locking is no problem.
Diffstat (limited to 'data')
0 files changed, 0 insertions, 0 deletions