async because I don’t want to actually block anywh...
# coroutines
k
async because I don’t want to actually block anywhere, so my acquire() returns CompletableFuture and a permit to release