From f37d81cd60986fc80ee9ddb9f158576a7c28ad20 Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Wed, 19 Mar 2025 00:37:46 +0300 Subject: [PATCH] [history] Added .tryDecref{} as opposite operation for .tryIncref{} --- .../utility/reference_counter/CloseableReferenceCounter.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt b/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt index f5f49d0..a5ea0fa 100644 --- a/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt +++ b/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt @@ -33,6 +33,11 @@ internal class CloseableReferenceCounter(private val _errMessage: String) { this._value.update(Long::dec) } + inline fun tryDecref(block: () -> R): R { + this.checkNotClosed() + return safeAutoClose2(onSuccess = this::decref, action = block) + } + fun close(errExistRefs: String) { val state = this._value.compareAndExchange(0, -1) when {