There is a lot of issues with the poolcounter code in thumbor:
- It only supports a single server, meaning that when we want to reboot a poolcounter server, we might need to deploy thumbor first
- There are various logical bugs, starting from the fact that release starts a new connection if none is found
- There is no proper way to ensure a lock is released on failure
- We're always one code bug away from leaving a leaking acquired lock behind
Given the code now uses async/await instead of tornado-specific primitives, I think we might want to add async/await capabilties to python-poolcounter and use that library here instead of this bespoke code.