Class ConcurrentUtils
- java.lang.Object
-
- io.servicetalk.concurrent.internal.ConcurrentUtils
-
public final class ConcurrentUtils extends java.lang.ObjectUtilities which can be used for concurrency.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> booleanreleaseLock(java.util.concurrent.atomic.AtomicIntegerFieldUpdater<T> lockUpdater, T owner)Release a lock that was previously acquired viatryAcquireLock(AtomicIntegerFieldUpdater, Object).static <T> booleanreleaseReentrantLock(java.util.concurrent.atomic.AtomicLongFieldUpdater<T> lockUpdater, long acquireId, T owner)Release a lock that was previously acquired viatryAcquireReentrantLock(AtomicLongFieldUpdater, Object).static <T> booleantryAcquireLock(java.util.concurrent.atomic.AtomicIntegerFieldUpdater<T> lockUpdater, T owner)Acquire a lock that is exclusively held with no re-entry, but attempts to acquire the lock while it is held can be detected byreleaseLock(AtomicIntegerFieldUpdater, Object).static <T> longtryAcquireReentrantLock(java.util.concurrent.atomic.AtomicLongFieldUpdater<T> lockUpdater, T owner)Acquire a lock that allows reentry and attempts to acquire the lock while it is held can be detected byreleaseReentrantLock(AtomicLongFieldUpdater, long, Object).
-
-
-
Method Detail
-
tryAcquireLock
public static <T> boolean tryAcquireLock(java.util.concurrent.atomic.AtomicIntegerFieldUpdater<T> lockUpdater, T owner)Acquire a lock that is exclusively held with no re-entry, but attempts to acquire the lock while it is held can be detected byreleaseLock(AtomicIntegerFieldUpdater, Object).- Type Parameters:
T- The type of object that owns the lock.- Parameters:
lockUpdater- TheAtomicIntegerFieldUpdaterused to control the lock state.owner- The owner of the lock object.- Returns:
trueif the lock was acquired,falseotherwise.
-
releaseLock
public static <T> boolean releaseLock(java.util.concurrent.atomic.AtomicIntegerFieldUpdater<T> lockUpdater, T owner)Release a lock that was previously acquired viatryAcquireLock(AtomicIntegerFieldUpdater, Object).- Type Parameters:
T- The type of object that owns the lock.- Parameters:
lockUpdater- TheAtomicIntegerFieldUpdaterused to control the lock state.owner- The owner of the lock object.- Returns:
trueif the lock was released, and no other attempts were made to acquire the lock while it was held.falseif the lock was released but another attempt was made to acquire the lock before it was released.
-
tryAcquireReentrantLock
public static <T> long tryAcquireReentrantLock(java.util.concurrent.atomic.AtomicLongFieldUpdater<T> lockUpdater, T owner)Acquire a lock that allows reentry and attempts to acquire the lock while it is held can be detected byreleaseReentrantLock(AtomicLongFieldUpdater, long, Object).This lock must eventually be released by the same thread that acquired the lock. If the thread that acquires this lock is terminated before releasing the lock state is undefined.
- Type Parameters:
T- The type of object that owns the lock.- Parameters:
lockUpdater- TheAtomicLongFieldUpdaterused to control the lock state.owner- The owner of the lock object.- Returns:
0if the acquire was unsuccessful, otherwise an identifier that must be passed to a subsequent call ofreleaseReentrantLock(AtomicLongFieldUpdater, long, Object).
-
releaseReentrantLock
public static <T> boolean releaseReentrantLock(java.util.concurrent.atomic.AtomicLongFieldUpdater<T> lockUpdater, long acquireId, T owner)Release a lock that was previously acquired viatryAcquireReentrantLock(AtomicLongFieldUpdater, Object).- Type Parameters:
T- The type of object that owns the lock.- Parameters:
lockUpdater- TheAtomicLongFieldUpdaterused to control the lock state.acquireId- The value returned from the previous call totryAcquireReentrantLock(AtomicLongFieldUpdater, Object).owner- The owner of the lock object.- Returns:
trueif the lock was released, or releases a prior re-entrant acquire, and no other attempts were made to acquire the lock while it was held.falseif the lock was released but another attempt was made to acquire the lock before it was released.
-
-