In a NUMA architecture, processors in the same CPU module with a processor
opening a spin gate tend to have preferential access to a spin gate in
memory when attempting to close the spin gate. This "unfair" memory access
to the desired spin gate can result in starvation of processors from other
CPU modules. This problem is solved by "balking" or delaying a specified
period of time before attempting to close a spin gate whenever either one
of the processors in the same CPU module just opened the desired spin
gate, or when a processor in another CPU module is spinning trying to
close the spin gate. Each processor detects when it is spinning on a spin
gate. It then transmits that information to the processors in other CPU
modules, allowing them to balk when opening spin gates.
In een architectuur NUMA, neigen de bewerkers in de zelfde module van cpu met een bewerker die een rotatiepoort opent om preferentiële toegang tot een rotatiepoort in geheugen te hebben wanneer het proberen om de rotatiepoort te sluiten. Deze "oneerlijke" geheugentoegang tot de gewenste rotatiepoort kan in verhongering van bewerkers van andere modules van cpu resulteren. Dit probleem wordt opgelost door "te verhinderen of" een gespecificeerde tijdspanne te vertragen alvorens te proberen om een rotatiepoort te sluiten wanneer of één van de bewerkers in de zelfde module van cpu enkel de gewenste rotatiepoort opende, of wanneer een bewerker in een andere module van cpu het proberen spint om de rotatiepoort te sluiten. Elke bewerker ontdekt wanneer het op een rotatiepoort spint. Het geeft dan die informatie aan de bewerkers in andere modules van cpu door, die hen toestaan om te verhinderen wanneer het openen van rotatiepoorten.