Previously in some edge cases, it was possible that release happens
between ac.mtx.Unlock and enqueueWaiter, and as a result, new waiter
continues to wait for next Release even though there are resources for its
ticket.
In edge case when all resources released at that time - waiter never
will be woken up.
Previously in some edge cases, it was possible that release happens between ac.mtx.Unlock and enqueueWaiter, and as a result, new waiter continues to wait for next Release even though there are resources for its ticket. In edge case when all resources released at that time - waiter never will be woken up.