write
inline fun <T> ReentrantReadWriteLock.write( action: () -> T ): T
Выполняет заданное действие под записью блокировки этого замка.
Функция выполняет повышение уровня блокировки с чтения на запись при необходимости, но это повышение не является атомарным, так как такая модернизация не поддерживается ReentrantReadWriteLock. Для такого повышения эта функция сначала освобождает все блокировки чтения, удерживаемые этим потоком, затем приобретает блокировку записи, а затем, освободив ее, снова приобретает блокировки чтения.
Поэтому, если действие внутри блокировки записи было инициировано путем проверки некоторого условия, это условие должно быть проверено повторно внутри действия, чтобы избежать возможных гонок.
Возвращает возвращаемое значение действия.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.concurrent/java.util.concurrent.locks.-reentrant-read-write-lock/write.html