Edoardo Luppi
08/21/2023, 8:16 AMatomicfu
, with the following block of code:
private val lock = SynchronizedObject()
...
public actual override fun use(instance: T) {
synchronized(lock) {
doSomething(instance)
}
}
What happens if doSomething
is a suspendable function?
Is this a use-case that I can handle somehow?Jeff Lockhart
08/21/2023, 2:40 PMreentrantLock()
instead:
val lock = reentrantLock()
lock.lock()
doSuspendSomething()
lock.unlock()
Jeff Lockhart
08/21/2023, 2:43 PMSynchronizedObject()
also supports manually calling lock()
and unlock()
too.Edoardo Luppi
08/21/2023, 3:41 PMJeff Lockhart
08/21/2023, 3:47 PMMutex
.