[sgen] Worker gray queue stealing
authorVlad Brezae <brezaevlad@gmail.com>
Fri, 14 Oct 2016 17:14:35 +0000 (20:14 +0300)
committerVlad Brezae <brezaevlad@gmail.com>
Thu, 19 Jan 2017 22:45:18 +0000 (00:45 +0200)
commit74435adcf9bef4027757a2f5aa61db0269894c8b
tree1329575f8362702a92289317d9f6247a8a476068
parent0b7fbf1d6a7a7e7d089531cc7571678b2919e6df
[sgen] Worker gray queue stealing

When a worker is out of work, it tries to steal a section from the bottom of another workers' private gray queue. This operation takes a lock. Pushes/Pops done by the owner thread on its own private gray queue are done in lock free fashion, using membar/CAS (at section level).
mono/sgen/sgen-gray.c
mono/sgen/sgen-gray.h
mono/sgen/sgen-workers.c