write
inline fun <T> ReentrantReadWriteLock.write( action: () -> T ): T
Выполняет заданное действие под написанием блокировки этого замка.
Функция выполняет обновление от чтения к записи при необходимости, но это обновление не является атомарным, поскольку такое обновление не поддерживается ReentrantReadWriteLock. Для выполнения такого обновления эта функция сначала освобождает все блокировки чтения, удерживаемые этим потоком, затем приобретает блокировку записи и после освобождения её повторно приобретает блокировки чтения.
Поэтому, если действие внутри блокировки записи было инициировано проверкой какого-либо условия, условие необходимо перепроверить внутри действия, чтобы избежать возможных гонок.
Возвращает значение возврата действия.
© 2010–2022 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