* Added `private`-keyword
* Made `mPermits` `volatile`.
* Used `awaitUninterruptibly` instead of `await` in `acquireUninterruptibly`