withReadAcquire

inline suspend fun <T, R> SmartKeyRWLocker<T>.withReadAcquire(action: () -> R): R(source)
inline suspend fun <T, R> SmartKeyRWLocker<T>.withReadAcquire(key: T, action: () -> R): R(source)


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

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