I wasn't able to find this anywhere.
When you use various locking mechanisms in DotNET, how is it implemented under the hood?
The first thread that manages to lock the object gets to use it.
But, how are the others waiting for the lock? I get that they are blocked until they get a lock, but how is it implemented? Is it some kind of while(...)
loop? Or is something else going there?