Nonmoving collector can end up spinning unnecessarily in sweep
Ward identified a call to allocBlockOnNode_sync
in nonmovingSweepMutLists
. This function isn't necessarily called while the SM lock embodied by alloc_spinlock
, meaning that sweep would end up spinning until the mutator triggers a minor GC. Not a correctness issue but still pretty bad.