-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Mutex의 withLock은
@OptIn(ExperimentalContracts::class)
public suspend inline fun <T> Mutex.withLock(owner: Any? = null, action: () -> T): T {
contract {
callsInPlace(action, InvocationKind.EXACTLY_ONCE)
}
lock(owner)
return try {
action()
} finally {
unlock(owner)
}
}다음과 같이 suspend function이고
ReetrantLock은
@kotlin.internal.InlineOnly
public inline fun <T> Lock.withLock(action: () -> T): T {
contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }
lock()
try {
return action()
} finally {
unlock()
}
}다음과 같이 suspend function이 아님
Metadata
Metadata
Assignees
Labels
No labels