[sgen] Run the scan pinned object job concurrently with minors
authorVlad Brezae <brezaevlad@gmail.com>
Tue, 20 Jun 2017 12:22:39 +0000 (15:22 +0300)
committerVlad Brezae <brezaevlad@gmail.com>
Fri, 23 Jun 2017 17:46:09 +0000 (20:46 +0300)
commit6bb78cace33fdf95696fda3dd73397f433b4621f
treef6203469018fe08fc8b0c04c26261ab058f8b602
parent5348325a645c13ac8d850c2243cc44ce24c69256
[sgen] Run the scan pinned object job concurrently with minors

Concurrent mark doesn't normally scan objects in the nursery since they can be moved. At the end of the concurrent mark, we were locking over the entire gc pause in order to make sure that the we can scan the latest pinned object list (aka none of those objects can be moved). Lock only over the pinning phase of the collection, since it is enough.
mono/sgen/sgen-gc.c
mono/sgen/sgen-pinning.c
mono/sgen/sgen-pinning.h