MCS (Mellor-Crummey and Scott) Variations in Java

(github.com)

1 points | by Strs2FillMyDrms 12 hours ago ago

1 comments

  • Strs2FillMyDrms 12 hours ago ago

    This MCS variation ("UnfairMCS"), spreads the CAS latency across multiple `node.next`, as opposed to its CLH counterpart which focuses its CAS pressures on a single point of contention on TAIL (in the `AbstractQueuedSynchronizer` case this is needed because each `prev` field needs to be set), fetching a new memory location on failure, helping offset the latency off of main memory, diverging it to all individual trails of `node.next` equally.