|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.multiverse.stms.gamma.transactionalobjects.AbstractGammaObject
org.multiverse.stms.gamma.transactionalobjects.BaseGammaTxnRef
org.multiverse.stms.gamma.transactionalobjects.GammaTxnDouble
public class GammaTxnDouble
| 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.MultiverseConstants |
|---|
LOCKMODE_EXCLUSIVE, LOCKMODE_NONE, LOCKMODE_READ, LOCKMODE_WRITE, SHAKE_BUGS, SPIN_YIELD, TRACING_ENABLED |
| Constructor Summary | |
|---|---|
GammaTxnDouble(double value)
|
|
GammaTxnDouble(GammaStm stm)
|
|
GammaTxnDouble(GammaStm stm,
double value)
|
|
GammaTxnDouble(GammaTxn tx)
|
|
GammaTxnDouble(GammaTxn tx,
double value)
|
|
| Method Summary | |
|---|---|
double |
alter(GammaTxn tx,
DoubleFunction function,
boolean returnOld)
|
double |
alterAndGet(DoubleFunction function)
Alters the value stored in this Ref using the provided function and returns the result. |
double |
alterAndGet(GammaTxn tx,
DoubleFunction function)
|
double |
alterAndGet(Txn tx,
DoubleFunction function)
Alters the value stored in this Ref using the provided function and lifting on the provided txn. |
double |
atomicAlterAndGet(DoubleFunction function)
Atomically applies the function to the current value in this ref and returns the new value. |
boolean |
atomicCompareAndSet(double expectedValue,
double newValue)
Executes a compare and set atomically. |
double |
atomicGet()
Atomically gets the value. |
double |
atomicGetAndAlter(DoubleFunction function)
Atomically applies the function to alter the value stored in this ref and returns the old value. |
double |
atomicGetAndIncrement(double amount)
Atomically increments the value and returns the old value. |
double |
atomicGetAndSet(double newValue)
Atomically sets the value and returns the previous value. |
double |
atomicIncrementAndGet(double amount)
Atomically increments the value and returns the old value. |
double |
atomicSet(double 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 a TxnThreadLocal. |
double |
atomicWeakGet()
Atomically gets the value without providing any ordering guarantees. |
void |
await(double value)
Awaits for the value to become the given value. |
void |
await(DoublePredicate predicate)
Awaits until the predicate holds. |
void |
await(GammaTxn tx,
double value)
|
void |
await(GammaTxn tx,
DoublePredicate predicate)
|
void |
await(Txn tx,
double value)
Awaits for the reference to become the given value. |
void |
await(Txn tx,
DoublePredicate predicate)
Awaits until the predicate holds using the provided txn. |
void |
commute(DoubleFunction function)
Applies the function on the ref in a commuting manner. |
void |
commute(GammaTxn tx,
DoubleFunction function)
|
void |
commute(Txn tx,
DoubleFunction function)
Applies the function on the ref in a commuting manner. |
double |
get()
Gets the value using the provided txn. |
double |
get(GammaTxn tx)
|
double |
get(Txn tx)
Gets the value using the provided txn. |
double |
getAndAlter(DoubleFunction function)
Alters the value stored in this Ref using the provided function amd returns the old value. |
double |
getAndAlter(GammaTxn tx,
DoubleFunction function)
|
double |
getAndAlter(Txn tx,
DoubleFunction function)
Alters the value stored in this Ref using the function and returns the old value, using the provided txn. |
double |
getAndIncrement(double amount)
Increments the value and returns the old value. |
double |
getAndIncrement(GammaTxn tx,
double amount)
|
double |
getAndIncrement(Txn tx,
double amount)
Increments the value and returns the old value using the provided txn. |
double |
getAndLock(GammaTxn tx,
LockMode lockMode)
|
double |
getAndLock(LockMode lockMode)
Gets the value and applies the lock. |
double |
getAndLock(Txn tx,
LockMode lockMode)
Gets the value using the provided txn and acquired the lock with the specified LockMode. |
double |
getAndSet(double value)
Sets the value the value and returns the new value. |
double |
getAndSet(GammaTxn tx,
double value)
|
double |
getAndSet(Txn tx,
double value)
Sets the value using the provided txn. |
double |
getAndSetAndLock(double value,
LockMode lockMode)
Sets the value, acquired the Lock with the specified Lockmode and returns the previous value. |
double |
getAndSetAndLock(GammaTxn tx,
double value,
LockMode lockMode)
|
double |
getAndSetAndLock(Txn tx,
double value,
LockMode lockMode)
Sets the value and acquired the Lock with the provided LockMode. |
double |
incrementAndGet(double amount)
Increments and gets the new value. |
double |
incrementAndGet(GammaTxn tx,
double amount)
|
double |
incrementAndGet(Txn tx,
double amount)
Increments and gets the new value using the provided txn. |
double |
set(double value)
Sets the new value. |
double |
set(GammaTxn tx,
double value)
|
double |
set(Txn tx,
double value)
Sets the new value using the provided txn. |
double |
setAndLock(double value,
LockMode lockMode)
Sets the new value and applies the lock. |
double |
setAndLock(GammaTxn tx,
double value,
LockMode lockMode)
|
double |
setAndLock(Txn tx,
double value,
LockMode lockMode)
Sets the new value using the provided txn. |
String |
toDebugString()
Returns a debug representation of the TxnObject. |
String |
toString()
Returns a String representation of the Object using the Txn on the TxnThreadLocal. |
String |
toString(GammaTxn tx)
|
String |
toString(Txn tx)
Returns a String representation of the object using the provided Txn. |
| 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 java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.multiverse.api.TxnObject |
|---|
ensure, ensure, getLock, getStm, getVersion |
| Constructor Detail |
|---|
public GammaTxnDouble(double value)
public GammaTxnDouble(GammaTxn tx)
public GammaTxnDouble(GammaTxn tx,
double value)
public GammaTxnDouble(GammaStm stm)
public GammaTxnDouble(GammaStm stm,
double value)
| Method Detail |
|---|
public final double get()
TxnDouble
get in interface TxnDoubleTxnDouble.atomicGet()public final double get(Txn tx)
TxnDouble
get in interface TxnDoubletx - the Txn used for this operation.
public final double get(GammaTxn tx)
public final double getAndLock(LockMode lockMode)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
getAndLock in interface TxnDoublelockMode - the LockMode applied.
TxnDouble.atomicGet()
public final double getAndLock(Txn tx,
LockMode lockMode)
TxnDouble
getAndLock in interface TxnDoubletx - the Txn used for this operation.lockMode - the LockMode used
public final double getAndLock(GammaTxn tx,
LockMode lockMode)
public final double set(double value)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
set in interface TxnDoublevalue - the new value.
public final double set(Txn tx,
double value)
TxnDouble
set in interface TxnDoubletx - the Txn used for this operation.value - the new value
public final double set(GammaTxn tx,
double value)
public final double setAndLock(double value,
LockMode lockMode)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
setAndLock in interface TxnDoublevalue - the new value.lockMode - the used LockMode.
public final double setAndLock(Txn tx,
double value,
LockMode lockMode)
TxnDouble
setAndLock in interface TxnDoubletx - the Txn used for this operation.value - the new valuelockMode - the lockMode used.
public final double setAndLock(GammaTxn tx,
double value,
LockMode lockMode)
public final double getAndSet(double value)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
getAndSet in interface TxnDoublevalue - the new value.
public final double getAndSet(Txn tx,
double value)
TxnDouble
getAndSet in interface TxnDoubletx - the Txn used for this operation.value - the new value.
public final double getAndSet(GammaTxn tx,
double value)
public final double getAndSetAndLock(double value,
LockMode lockMode)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
getAndSetAndLock in interface TxnDoublevalue - the new value.lockMode - the LockMode used.
public final double getAndSetAndLock(Txn tx,
double value,
LockMode lockMode)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
getAndSetAndLock in interface TxnDoubletx - the Txn used for this operation.value - the new value.lockMode - the LockMode used.
public final double getAndSetAndLock(GammaTxn tx,
double value,
LockMode lockMode)
public final double atomicGet()
TxnDoubleTxnDouble.atomicWeakGet().
atomicGet in interface TxnDoublepublic final double atomicWeakGet()
TxnDoubleIt is the best method to call if you just want to get the current value stored.
atomicWeakGet in interface TxnDoublepublic final double atomicSet(double newValue)
TxnDouble
atomicSet in interface TxnDoublenewValue - the new value.
public final double atomicGetAndSet(double newValue)
TxnDouble
atomicGetAndSet in interface TxnDoublenewValue - the new value.
public final void commute(DoubleFunction function)
TxnDoubleThis 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 the TxnThreadLocal.
commute in interface TxnDoublefunction - the function to apply to this reference.
public final void commute(Txn tx,
DoubleFunction function)
TxnDoubleThis 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 the TxnThreadLocal.
commute in interface TxnDoubletx - the Txn used for this operation.function - the function to apply to this reference.
public final void commute(GammaTxn tx,
DoubleFunction function)
public final double atomicAlterAndGet(DoubleFunction function)
TxnDouble
atomicAlterAndGet in interface TxnDoublefunction - the Function used
public final double atomicGetAndAlter(DoubleFunction function)
TxnDouble
atomicGetAndAlter in interface TxnDoublefunction - the Function used
public final double alterAndGet(DoubleFunction function)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
alterAndGet in interface TxnDoublefunction - the function that alters the value stored in this Ref.
public final double alterAndGet(Txn tx,
DoubleFunction function)
TxnDouble
alterAndGet in interface TxnDoubletx - the Txn used for this operation.function - the function that alters the value stored in this Ref.
public final double alterAndGet(GammaTxn tx,
DoubleFunction function)
public final double getAndAlter(DoubleFunction function)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
getAndAlter in interface TxnDoublefunction - the function that alters the value stored in this Ref.
public final double getAndAlter(Txn tx,
DoubleFunction function)
TxnDouble
getAndAlter in interface TxnDoubletx - the Txn used for this operation.function - the function that alters the value stored in this Ref.
public final double getAndAlter(GammaTxn tx,
DoubleFunction function)
public final double alter(GammaTxn tx,
DoubleFunction function,
boolean returnOld)
public final boolean atomicCompareAndSet(double expectedValue,
double newValue)
TxnDouble
atomicCompareAndSet in interface TxnDoubleexpectedValue - the expected value.newValue - the new value.
public final double getAndIncrement(double amount)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
getAndIncrement in interface TxnDoubleamount - the amount to increment with.
public final double getAndIncrement(Txn tx,
double amount)
TxnDouble
getAndIncrement in interface TxnDoubletx - the Txn used for this operation.amount - the amount to increment with.
public final double getAndIncrement(GammaTxn tx,
double amount)
public final double atomicGetAndIncrement(double amount)
TxnDouble
atomicGetAndIncrement in interface TxnDoubleamount - the amount to increase with.
public final double atomicIncrementAndGet(double amount)
TxnDouble
atomicIncrementAndGet in interface TxnDoubleamount - the amount to increment with.
public final double incrementAndGet(double amount)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
incrementAndGet in interface TxnDoubleamount - the amount to increment with.
public final double incrementAndGet(Txn tx,
double amount)
TxnDouble
incrementAndGet in interface TxnDoubletx - the Txn used for this operation.amount - the amount to increment with.
public final double incrementAndGet(GammaTxn tx,
double amount)
public final void await(double value)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
await in interface TxnDoublevalue - the value to wait for.
public final void await(Txn tx,
double value)
TxnDouble
await in interface TxnDoubletx - the Txn used for this operation.value - the value to wait for.
public final void await(GammaTxn tx,
double value)
public final void await(DoublePredicate predicate)
TxnDoubleThis call lifts on the Txn stored in the TxnThreadLocal.
await in interface TxnDoublepredicate - the predicate to evaluate.
public final void await(Txn tx,
DoublePredicate predicate)
TxnDouble
await in interface TxnDoubletx - the Txn used for this operation.predicate - the predicate to evaluate.
public final void await(GammaTxn tx,
DoublePredicate predicate)
public final String toDebugString()
TxnObject
toDebugString in interface TxnObjectpublic final String toString()
TxnObjectTxn on the TxnThreadLocal.
toString in interface TxnObjecttoString in class Objectpublic final String toString(Txn tx)
TxnObjectTxn.
toString in interface TxnObjecttx - the Txn used.
public final String toString(GammaTxn tx)
public final String atomicToString()
TxnObjectTxnThreadLocal. The outputted value doesn't need to be consistent from some point
in time, only a best effort is made.
atomicToString in interface TxnObject
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||