Hello,
That's not the end of the story, there is still a problem with the SpinLock that i am using, it's a TTAS with an exponential backoff but this kind
of spinlock suffers from starvation, i mean that some threads may starve for a long time and this is not acceptable, and i think
that the lockfree algorithms that spin on a CAS suffers from the same
problem that is starvation, so the solution is to use a Ticket Spinlock with backoff that is fair to resolve the starvation problem , but this kind of Ticket Spinlock spins on a shared variable and this higher the cache-coherence traffic, so this will slow the system globally so this is not
so efficient, so the MCS queue Lock is the solution i think.
But i have still a question for you:
Does the Windows critical section suffers from this starvation problem
and does it uses a TTAS with backoff or is it the same as an MCS queue Lock or ..?
Thank you,
Amine Moulay Ramdane.