Acquire a Permit, asynchronously.
Acquire a Permit, asynchronously. Be sure to permit.release() in a 'finally' block of your onSuccess() callback.
a Future[Permit] when the Future is satisfied, computation can proceed, or a Future.Exception[RejectedExecutionException] if the configured maximum number of waiters would be exceeded.