acquire

suspend fun acquire(permits: Int = 1)

Holds call until this SmartSemaphore will be re-locked. That means that while freePermits == true, holds will wait for freePermits == false and then try to lock