Class GammaTxnInteger
- java.lang.Object
-
- org.multiverse.stms.gamma.transactionalobjects.AbstractGammaObject
-
- org.multiverse.stms.gamma.transactionalobjects.BaseGammaTxnRef
-
- org.multiverse.stms.gamma.transactionalobjects.GammaTxnInteger
-
- All Implemented Interfaces:
Lock
,TxnInteger
,TxnObject
,MultiverseConstants
,GammaConstants
,GammaObject
public class GammaTxnInteger extends BaseGammaTxnRef implements TxnInteger
-
-
Field Summary
-
Fields inherited from class org.multiverse.stms.gamma.transactionalobjects.BaseGammaTxnRef
long_value, ref_value, type
-
Fields inherited from class org.multiverse.stms.gamma.transactionalobjects.AbstractGammaObject
___unsafe, identityHashCode, listeners, listenersOffset, MASK_OREC_EXCLUSIVELOCK, MASK_OREC_READBIASED, MASK_OREC_READLOCKS, MASK_OREC_READONLY_COUNT, MASK_OREC_SURPLUS, MASK_OREC_UPDATELOCK, orec, stm, valueOffset, version
-
Fields inherited from interface org.multiverse.stms.gamma.GammaConstants
FAILURE, MASK_CONFLICT, MASK_SUCCESS, MASK_UNREGISTERED, REGISTRATION_DONE, REGISTRATION_NONE, REGISTRATION_NOT_NEEDED, TRANLOCAL_COMMUTING, TRANLOCAL_CONSTRUCTING, TRANLOCAL_READ, TRANLOCAL_WRITE, TRANSACTIONTYPE_FAT_FIXED_LENGTH, TRANSACTIONTYPE_FAT_MONO, TRANSACTIONTYPE_FAT_VARIABLE_LENGTH, TRANSACTIONTYPE_LEAN_FIXED_LENGTH, TRANSACTIONTYPE_LEAN_MONO, TX_ABORTED, TX_ACTIVE, TX_COMMITTED, TX_PREPARED, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_INT, TYPE_LONG, TYPE_REF, VERSION_UNCOMMITTED
-
Fields inherited from interface org.multiverse.MultiverseConstants
LOCKMODE_EXCLUSIVE, LOCKMODE_NONE, LOCKMODE_READ, LOCKMODE_WRITE, SHAKE_BUGS, SPIN_YIELD, TRACING_ENABLED
-
-
Constructor Summary
Constructors Constructor Description GammaTxnInteger(int value)
GammaTxnInteger(GammaStm stm)
GammaTxnInteger(GammaStm stm, int value)
GammaTxnInteger(GammaTxn tx)
GammaTxnInteger(GammaTxn tx, int value)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
alterAndGet(IntFunction function)
Alters the value stored in this Ref using the provided function and returns the result.int
alterAndGet(Txn tx, IntFunction function)
Alters the value stored in this Ref using the provided function and lifting on the provided txn.int
alterAndGet(GammaTxn tx, IntFunction function)
int
atomicAlterAndGet(IntFunction function)
Atomically applies the function to the current value in this ref and returns the new value.boolean
atomicCompareAndSet(int expectedValue, int newValue)
Executes a compare and set atomically.int
atomicGet()
Atomically gets the value.int
atomicGetAndAlter(IntFunction function)
Atomically applies the function to alter the value stored in this ref and returns the old value.int
atomicGetAndIncrement(int amount)
Atomically increments the value and returns the old value.int
atomicGetAndSet(int newValue)
Atomically sets the value and returns the previous value.int
atomicIncrementAndGet(int amount)
Atomically increments the value and returns the old value.int
atomicSet(int newValue)
Atomically sets the value and returns the new value.String
atomicToString()
Returns a String representation of the object using the provided transaction without looking at aTxnThreadLocal
.int
atomicWeakGet()
Atomically gets the value without providing any ordering guarantees.void
await(int value)
Awaits for the value to become the given value.void
await(IntPredicate predicate)
Awaits until the predicate holds.void
await(Txn tx, int value)
Awaits for the reference to become the given value.void
await(Txn tx, IntPredicate predicate)
Awaits until the predicate holds using the provided txn.void
await(GammaTxn tx, int value)
void
await(GammaTxn tx, IntPredicate predicate)
void
commute(IntFunction function)
Applies the function on the ref in a commuting manner.void
commute(Txn tx, IntFunction function)
Applies the function on the ref in a commuting manner.void
commute(GammaTxn tx, IntFunction function)
void
decrement()
Decrements the value by one.void
decrement(int amount)
Decrements the value by the given amount.void
decrement(Txn tx)
Decrements the value by one using the provided txn.void
decrement(Txn tx, int amount)
Decrements the value by the given amount using the provided txn.int
get()
Gets the value using the provided txn.int
get(Txn tx)
Gets the value using the provided txn.int
get(GammaTxn tx)
int
getAndAlter(IntFunction function)
Alters the value stored in this Ref using the provided function amd returns the old value.int
getAndAlter(Txn tx, IntFunction function)
Alters the value stored in this Ref using the function and returns the old value, using the provided txn.int
getAndAlter(GammaTxn tx, IntFunction function)
int
getAndIncrement(int amount)
Increments the value and returns the old value.int
getAndIncrement(Txn tx, int amount)
Increments the value and returns the old value using the provided txn.int
getAndIncrement(GammaTxn tx, int amount)
int
getAndLock(LockMode lockMode)
Gets the value and applies the lock.int
getAndLock(Txn tx, LockMode lockMode)
Gets the value using the provided txn and acquired the lock with the specified LockMode.int
getAndLock(GammaTxn tx, LockMode lockMode)
int
getAndSet(int value)
Sets the value the value and returns the new value.int
getAndSet(Txn tx, int value)
Sets the value using the provided txn.int
getAndSet(GammaTxn tx, int value)
int
getAndSetAndLock(int value, LockMode lockMode)
Sets the value, acquired the Lock with the specified Lockmode and returns the previous value.int
getAndSetAndLock(Txn tx, int value, LockMode lockMode)
Sets the value and acquired the Lock with the provided LockMode.int
getAndSetLock(GammaTxn tx, int value, LockMode lockMode)
void
increment()
Increments the value by one.void
increment(int amount)
Increments the value by the given amount.void
increment(Txn tx)
Increments the value by one using the provided txn.void
increment(Txn tx, int amount)
Increments the value by the given amount using the provided txn.void
increment(GammaTxn tx, int amount)
int
incrementAndGet(int amount)
Increments and gets the new value.int
incrementAndGet(Txn tx, int amount)
Increments and gets the new value using the provided txn.int
incrementAndGet(GammaTxn tx, int amount)
int
set(int value)
Sets the new value.int
set(Txn tx, int value)
Sets the new value using the provided txn.int
set(GammaTxn tx, int value)
int
setAndLock(int value, LockMode lockMode)
Sets the new value and applies the lock.int
setAndLock(Txn tx, int value, LockMode lockMode)
Sets the new value using the provided txn.int
setAndLock(GammaTxn tx, int value, LockMode lockMode)
String
toDebugString()
Returns a debug representation of the TxnObject.String
toString()
Returns a String representation of the Object using theTxn
on theTxnThreadLocal
.String
toString(Txn tx)
Returns a String representation of the object using the providedTxn
.String
toString(GammaTxn tx)
-
Methods inherited from class org.multiverse.stms.gamma.transactionalobjects.BaseGammaTxnRef
acquire, acquire, acquire, arriveAndExclusiveLockOrBackoff, atomicCompareAndSetLong, atomicGetLong, atomicObjectGet, atomicSetLong, atomicSetObject, commit, ensure, ensure, ensure, flattenCommute, getLong, getObject, hasReadConflict, leanCommit, load, openForCommute, openForCommute, openForCommute, openForCommute, openForConstruction, openForConstruction, openForConstruction, openForConstruction, openForRead, openForRead, openForRead, openForRead, openForRead, openForRead, openForWrite, openForWrite, openForWrite, openForWrite, openForWrite, openForWrite, prepare, registerChangeListener, releaseAfterFailure, releaseAfterReading, releaseAfterUpdate, setLong, setObject, tryLockAndCheckConflict
-
Methods inherited from class org.multiverse.stms.gamma.transactionalobjects.AbstractGammaObject
___removeListenersAfterWrite, ___toOrecString, arrive, arriveAndExclusiveLock, arriveAndLock, atomicGetLockMode, atomicGetLockModeAsInt, departAfterFailure, departAfterFailureAndUnlock, departAfterReading, departAfterReadingAndUnlock, departAfterUpdateAndUnlock, getLock, getLockMode, getLockMode, getLockMode, getReadBiasedThreshold, getReadLockCount, getReadLockCount, getReadonlyCount, getReadonlyCount, getStm, getSurplus, getSurplus, getVersion, hasAnyLock, hasExclusiveLock, hasExclusiveLock, hasWriteLock, hasWriteLock, hasWriteOrExclusiveLock, identityHashCode, isReadBiased, isReadBiased, lockAfterArrive, setExclusiveLock, setIsReadBiased, setReadLockCount, setReadonlyCount, setSurplus, setWriteLock, unlockByUnregistered, upgradeReadLock, upgradeWriteLock, waitForExclusiveLockToBecomeFree
-
-
-
-
Constructor Detail
-
GammaTxnInteger
public GammaTxnInteger(int value)
-
GammaTxnInteger
public GammaTxnInteger(GammaTxn tx)
-
GammaTxnInteger
public GammaTxnInteger(GammaTxn tx, int value)
-
GammaTxnInteger
public GammaTxnInteger(GammaStm stm)
-
GammaTxnInteger
public GammaTxnInteger(GammaStm stm, int value)
-
-
Method Detail
-
get
public final int get()
Description copied from interface:TxnInteger
Gets the value using the provided txn.- Specified by:
get
in interfaceTxnInteger
- Returns:
- the current value.
- See Also:
TxnInteger.atomicGet()
-
get
public final int get(Txn tx)
Description copied from interface:TxnInteger
Gets the value using the provided txn.- Specified by:
get
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.- Returns:
- the value stored in the ref.
-
get
public final int get(GammaTxn tx)
-
getAndLock
public int getAndLock(LockMode lockMode)
Description copied from interface:TxnInteger
Gets the value and applies the lock. If the current lockMode already is higher than the provided lockMode the Lock is not upgraded to a higher value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
getAndLock
in interfaceTxnInteger
- Parameters:
lockMode
- the LockMode applied.- Returns:
- the current value.
- See Also:
TxnInteger.atomicGet()
-
getAndLock
public final int getAndLock(Txn tx, LockMode lockMode)
Description copied from interface:TxnInteger
Gets the value using the provided txn and acquired the lock with the specified LockMode.- Specified by:
getAndLock
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.lockMode
- the LockMode used- Returns:
- the value stored in the ref.
-
set
public final int set(int value)
Description copied from interface:TxnInteger
Sets the new value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
set
in interfaceTxnInteger
- Parameters:
value
- the new value.- Returns:
- the new value.
-
set
public final int set(Txn tx, int value)
Description copied from interface:TxnInteger
Sets the new value using the provided txn.- Specified by:
set
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.value
- the new value- Returns:
- the old value
-
set
public final int set(GammaTxn tx, int value)
-
setAndLock
public final int setAndLock(int value, LockMode lockMode)
Description copied from interface:TxnInteger
Sets the new value and applies the lock.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
setAndLock
in interfaceTxnInteger
- Parameters:
value
- the new value.lockMode
- the used LockMode.- Returns:
- the new value.
-
setAndLock
public final int setAndLock(Txn tx, int value, LockMode lockMode)
Description copied from interface:TxnInteger
Sets the new value using the provided txn.- Specified by:
setAndLock
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.value
- the new valuelockMode
- the lockMode used.- Returns:
- the old value
-
getAndSet
public final int getAndSet(int value)
Description copied from interface:TxnInteger
Sets the value the value and returns the new value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
getAndSet
in interfaceTxnInteger
- Parameters:
value
- the new value.- Returns:
- the old value.
-
getAndSet
public final int getAndSet(Txn tx, int value)
Description copied from interface:TxnInteger
Sets the value using the provided txn.- Specified by:
getAndSet
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.value
- the new value.- Returns:
- the old value.
-
getAndSet
public final int getAndSet(GammaTxn tx, int value)
-
getAndSetAndLock
public final int getAndSetAndLock(int value, LockMode lockMode)
Description copied from interface:TxnInteger
Sets the value, acquired the Lock with the specified Lockmode and returns the previous value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
getAndSetAndLock
in interfaceTxnInteger
- Parameters:
value
- the new value.lockMode
- the LockMode used.- Returns:
- the old value.
-
getAndSetAndLock
public final int getAndSetAndLock(Txn tx, int value, LockMode lockMode)
Description copied from interface:TxnInteger
Sets the value and acquired the Lock with the provided LockMode.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
getAndSetAndLock
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.value
- the new value.lockMode
- the LockMode used.- Returns:
- the old value.
-
atomicGet
public final int atomicGet()
Description copied from interface:TxnInteger
Atomically gets the value. The value could be stale as soon as it is returned. This method doesn't care about any running txns. It could be that this call fails e.g. when a ref is locked. If you don't care about correct orderings, see theTxnInteger.atomicWeakGet()
.- Specified by:
atomicGet
in interfaceTxnInteger
- Returns:
- the current value.
-
atomicWeakGet
public final int atomicWeakGet()
Description copied from interface:TxnInteger
Atomically gets the value without providing any ordering guarantees. This method is extremely cheap and will never fail. So even if the ref is privatized, this call will still complete.It is the best method to call if you just want to get the current value stored.
- Specified by:
atomicWeakGet
in interfaceTxnInteger
- Returns:
- the value.
-
atomicSet
public final int atomicSet(int newValue)
Description copied from interface:TxnInteger
Atomically sets the value and returns the new value. This method doesn't care about any running txns.- Specified by:
atomicSet
in interfaceTxnInteger
- Parameters:
newValue
- the new value.- Returns:
- the new value.
-
atomicGetAndSet
public final int atomicGetAndSet(int newValue)
Description copied from interface:TxnInteger
Atomically sets the value and returns the previous value. This method doesn't care about any running txns.- Specified by:
atomicGetAndSet
in interfaceTxnInteger
- Parameters:
newValue
- the new value.- Returns:
- the old value.
-
commute
public final void commute(IntFunction function)
Description copied from interface:TxnInteger
Applies the function on the ref in a commuting manner. So if there are no dependencies, the function will commute. If somehow there already is a dependency or a dependency is formed on the result of the commuting function, the function will not commute and will be exactly the same as an alter.This is different than the behavior in Clojure where the commute will be re-applied at the end of the txn, even though some dependency is introduced, which can lead to inconsistencies.
This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
commute
in interfaceTxnInteger
- Parameters:
function
- the function to apply to this reference.
-
commute
public final void commute(Txn tx, IntFunction function)
Description copied from interface:TxnInteger
Applies the function on the ref in a commuting manner. So if there are no dependencies, the function will commute. If somehow there already is a dependency or a dependency is formed on the result of the commuting function, the function will not commute and will be exactly the same as an alter.This is different than the behavior in Clojure where the commute will be re-applied at the end of the txn, even though some dependency is introduced, which can lead to inconsistencies.
This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
commute
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.function
- the function to apply to this reference.
-
commute
public final void commute(GammaTxn tx, IntFunction function)
-
atomicAlterAndGet
public final int atomicAlterAndGet(IntFunction function)
Description copied from interface:TxnInteger
Atomically applies the function to the current value in this ref and returns the new value. This method doesn't care about any running txns.- Specified by:
atomicAlterAndGet
in interfaceTxnInteger
- Parameters:
function
- the Function used- Returns:
- the new value.
-
atomicGetAndAlter
public final int atomicGetAndAlter(IntFunction function)
Description copied from interface:TxnInteger
Atomically applies the function to alter the value stored in this ref and returns the old value. This method doesn't care about any running txns.- Specified by:
atomicGetAndAlter
in interfaceTxnInteger
- Parameters:
function
- the Function used- Returns:
- the old value.
-
alterAndGet
public final int alterAndGet(IntFunction function)
Description copied from interface:TxnInteger
Alters the value stored in this Ref using the provided function and returns the result.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
alterAndGet
in interfaceTxnInteger
- Parameters:
function
- the function that alters the value stored in this Ref.- Returns:
- the new value.
-
alterAndGet
public final int alterAndGet(Txn tx, IntFunction function)
Description copied from interface:TxnInteger
Alters the value stored in this Ref using the provided function and lifting on the provided txn.- Specified by:
alterAndGet
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.function
- the function that alters the value stored in this Ref.- Returns:
- the new value.
-
alterAndGet
public final int alterAndGet(GammaTxn tx, IntFunction function)
-
getAndAlter
public final int getAndAlter(IntFunction function)
Description copied from interface:TxnInteger
Alters the value stored in this Ref using the provided function amd returns the old value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
getAndAlter
in interfaceTxnInteger
- Parameters:
function
- the function that alters the value stored in this Ref.- Returns:
- the old value.
-
getAndAlter
public final int getAndAlter(Txn tx, IntFunction function)
Description copied from interface:TxnInteger
Alters the value stored in this Ref using the function and returns the old value, using the provided txn.- Specified by:
getAndAlter
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.function
- the function that alters the value stored in this Ref.- Returns:
- the old value
-
getAndAlter
public final int getAndAlter(GammaTxn tx, IntFunction function)
-
atomicCompareAndSet
public final boolean atomicCompareAndSet(int expectedValue, int newValue)
Description copied from interface:TxnInteger
Executes a compare and set atomically. This method doesn't care about any running txns.- Specified by:
atomicCompareAndSet
in interfaceTxnInteger
- Parameters:
expectedValue
- the expected value.newValue
- the new value.- Returns:
- true if the compareAndSwap was a success, false otherwise.
-
atomicGetAndIncrement
public final int atomicGetAndIncrement(int amount)
Description copied from interface:TxnInteger
Atomically increments the value and returns the old value. This method doesn't care about any running txns.- Specified by:
atomicGetAndIncrement
in interfaceTxnInteger
- Parameters:
amount
- the amount to increase with.- Returns:
- the old value.
-
atomicIncrementAndGet
public final int atomicIncrementAndGet(int amount)
Description copied from interface:TxnInteger
Atomically increments the value and returns the old value. This method doesn't care about any running txns.- Specified by:
atomicIncrementAndGet
in interfaceTxnInteger
- Parameters:
amount
- the amount to increment with.- Returns:
- the new value.
-
getAndIncrement
public final int getAndIncrement(int amount)
Description copied from interface:TxnInteger
Increments the value and returns the old value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
getAndIncrement
in interfaceTxnInteger
- Parameters:
amount
- the amount to increment with.- Returns:
- the old value.
-
getAndIncrement
public final int getAndIncrement(Txn tx, int amount)
Description copied from interface:TxnInteger
Increments the value and returns the old value using the provided txn.- Specified by:
getAndIncrement
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.amount
- the amount to increment with.- Returns:
- the old value.
-
getAndIncrement
public final int getAndIncrement(GammaTxn tx, int amount)
-
incrementAndGet
public final int incrementAndGet(int amount)
Description copied from interface:TxnInteger
Increments and gets the new value.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
incrementAndGet
in interfaceTxnInteger
- Parameters:
amount
- the amount to increment with.- Returns:
- the new value.
-
incrementAndGet
public final int incrementAndGet(Txn tx, int amount)
Description copied from interface:TxnInteger
Increments and gets the new value using the provided txn.- Specified by:
incrementAndGet
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.amount
- the amount to increment with.- Returns:
- the new value.
-
incrementAndGet
public final int incrementAndGet(GammaTxn tx, int amount)
-
increment
public final void increment()
Description copied from interface:TxnInteger
Increments the value by one.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
increment
in interfaceTxnInteger
-
increment
public final void increment(Txn tx)
Description copied from interface:TxnInteger
Increments the value by one using the provided txn.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
- Specified by:
increment
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.
-
increment
public final void increment(int amount)
Description copied from interface:TxnInteger
Increments the value by the given amount.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
increment
in interfaceTxnInteger
- Parameters:
amount
- the amount to increase with
-
increment
public final void increment(Txn tx, int amount)
Description copied from interface:TxnInteger
Increments the value by the given amount using the provided txn.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
- Specified by:
increment
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.amount
- the amount to increment with
-
increment
public final void increment(GammaTxn tx, int amount)
-
decrement
public final void decrement()
Description copied from interface:TxnInteger
Decrements the value by one.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
decrement
in interfaceTxnInteger
-
decrement
public final void decrement(Txn tx)
Description copied from interface:TxnInteger
Decrements the value by one using the provided txn.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
- Specified by:
decrement
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.
-
decrement
public final void decrement(int amount)
Description copied from interface:TxnInteger
Decrements the value by the given amount.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
decrement
in interfaceTxnInteger
- Parameters:
amount
- the amount to decrement with
-
decrement
public final void decrement(Txn tx, int amount)
Description copied from interface:TxnInteger
Decrements the value by the given amount using the provided txn.This call is able to commute if there are no dependencies on the value in the txn. That is why this method doesn't have a return value.
- Specified by:
decrement
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.amount
- the amount to decrement with
-
await
public final void await(int value)
Description copied from interface:TxnInteger
Awaits for the value to become the given value. If the value already has the the specified value, the call continues, else a retry is done.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
await
in interfaceTxnInteger
- Parameters:
value
- the value to wait for.
-
await
public final void await(Txn tx, int value)
Description copied from interface:TxnInteger
Awaits for the reference to become the given value. If the value already has the the specified value, the call continues, else a retry is done.- Specified by:
await
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.value
- the value to wait for.
-
await
public final void await(GammaTxn tx, int value)
-
await
public final void await(IntPredicate predicate)
Description copied from interface:TxnInteger
Awaits until the predicate holds. If the value already evaluates to true, the call continues else a retry is done. If the predicate throws an exception, the txn is aborted and the throwable is propagated.This call lifts on the
Txn
stored in theTxnThreadLocal
.- Specified by:
await
in interfaceTxnInteger
- Parameters:
predicate
- the predicate to evaluate.
-
await
public final void await(Txn tx, IntPredicate predicate)
Description copied from interface:TxnInteger
Awaits until the predicate holds using the provided txn. If the value already evaluates to true, the call continues else a retry is done. If the predicate throws an exception, the txn is aborted and the throwable is propagated.- Specified by:
await
in interfaceTxnInteger
- Parameters:
tx
- theTxn
used for this operation.predicate
- the predicate to evaluate.
-
await
public final void await(GammaTxn tx, IntPredicate predicate)
-
toDebugString
public final String toDebugString()
Description copied from interface:TxnObject
Returns a debug representation of the TxnObject. The data used doesn't have to be consistent, it is a best effort. This method doesn't rely on a running transaction.- Specified by:
toDebugString
in interfaceTxnObject
- Returns:
- the debug representation of the TxnObject.
-
toString
public final String toString()
Description copied from interface:TxnObject
Returns a String representation of the Object using theTxn
on theTxnThreadLocal
.
-
toString
public final String toString(Txn tx)
Description copied from interface:TxnObject
Returns a String representation of the object using the providedTxn
.
-
atomicToString
public final String atomicToString()
Description copied from interface:TxnObject
Returns a String representation of the object using the provided transaction without looking at aTxnThreadLocal
. The outputted value doesn't need to be consistent from some point in time, only a best effort is made.- Specified by:
atomicToString
in interfaceTxnObject
- Returns:
- the String representation.
-
-