withReadAcquire

inline suspend fun <T> SmartRWLocker.withReadAcquire(action: () -> T): T

Will call SmartSemaphore.Mutable.lock, then execute action and return the result after SmartSemaphore.Mutable.unlock