Control.Concurrent.RLock.acquirewaits on the inner Lock and then tries to acquire the RLock again. However, what if between these two operations, another thread managed to acquire the RLock? The thread has to wait again, potentially forever. The doc comment says that the runtime guarantees that the woken thread completes its acquire operation, but I don't see how that can be achieved in this situation. Did I maybe miss something or is this a bug?
Control.Concurrent.RLock.acquire
wait
s on the innerLock
and then tries to acquire theRLock
again. However, what if between these two operations, another thread managed toacquire
theRLock
? The thread has towait
again, potentially forever. The doc comment says that the runtime guarantees that the woken thread completes itsacquire
operation, but I don't see how that can be achieved in this situation. Did I maybe miss something or is this a bug?