dropbox / load_management

This repository contains Go utilities for managing isolation and improving reliability of multi-tenant systems.
Apache License 2.0
54 stars 15 forks source link

[ac] check fast path again in enqueueWaiter #16

Closed LK4D4 closed 5 years ago

LK4D4 commented 5 years ago

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.