Package EDU.oswego.cs.dl.util.concurrent
Class WaitableDouble
java.lang.Object
EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
EDU.oswego.cs.dl.util.concurrent.SynchronizedDouble
EDU.oswego.cs.dl.util.concurrent.WaitableDouble
- All Implemented Interfaces:
Executor
,Cloneable
,Comparable
A class useful for offloading waiting and signalling operations
on single double variables.
-
Field Summary
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedDouble
value_
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
-
Constructor Summary
ConstructorsConstructorDescriptionWaitableDouble
(double initialValue) Make a new WaitableDouble with the given initial value, and using its own internal lock.WaitableDouble
(double initialValue, Object lock) Make a new WaitableDouble with the given initial value, and using the supplied lock. -
Method Summary
Modifier and TypeMethodDescriptiondouble
add
(double amount) Add amount to value (i.e., set value += amount)boolean
commit
(double assumedValue, double newValue) Set value to newValue only if it is currently assumedValue.double
divide
(double factor) Divide value by factor (i.e., set value /= factor)double
multiply
(double factor) Multiply value by factor (i.e., set value *= factor)double
set
(double newValue) Set to newValue.double
subtract
(double amount) Subtract amount from value (i.e., set value -= amount)void
Wait until value equals c, then run action if nonnull.void
whenGreater
(double c, Runnable action) wait until value greater than c, then run action if nonnull.void
whenGreaterEqual
(double c, Runnable action) wait until value greater than or equal to c, then run action if nonnull.void
wait until value less than c, then run action if nonnull.void
whenLessEqual
(double c, Runnable action) wait until value less than or equal to c, then run action if nonnull.void
whenNotEqual
(double c, Runnable action) wait until value not equal to c, then run action if nonnull.Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedDouble
compareTo, compareTo, compareTo, equals, get, hashCode, swap, toString
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
execute, getLock
-
Constructor Details
-
WaitableDouble
public WaitableDouble(double initialValue) Make a new WaitableDouble with the given initial value, and using its own internal lock. -
WaitableDouble
Make a new WaitableDouble with the given initial value, and using the supplied lock.
-
-
Method Details
-
set
public double set(double newValue) Description copied from class:SynchronizedDouble
Set to newValue.- Overrides:
set
in classSynchronizedDouble
- Returns:
- the old value
-
commit
public boolean commit(double assumedValue, double newValue) Description copied from class:SynchronizedDouble
Set value to newValue only if it is currently assumedValue.- Overrides:
commit
in classSynchronizedDouble
- Returns:
- true if successful
-
add
public double add(double amount) Description copied from class:SynchronizedDouble
Add amount to value (i.e., set value += amount)- Overrides:
add
in classSynchronizedDouble
- Returns:
- the new value
-
subtract
public double subtract(double amount) Description copied from class:SynchronizedDouble
Subtract amount from value (i.e., set value -= amount)- Overrides:
subtract
in classSynchronizedDouble
- Returns:
- the new value
-
multiply
public double multiply(double factor) Description copied from class:SynchronizedDouble
Multiply value by factor (i.e., set value *= factor)- Overrides:
multiply
in classSynchronizedDouble
- Returns:
- the new value
-
divide
public double divide(double factor) Description copied from class:SynchronizedDouble
Divide value by factor (i.e., set value /= factor)- Overrides:
divide
in classSynchronizedDouble
- Returns:
- the new value
-
whenEqual
Wait until value equals c, then run action if nonnull. The action is run with the synchronization lock held.- Throws:
InterruptedException
-
whenNotEqual
wait until value not equal to c, then run action if nonnull. The action is run with the synchronization lock held.- Throws:
InterruptedException
-
whenLessEqual
wait until value less than or equal to c, then run action if nonnull. The action is run with the synchronization lock held.- Throws:
InterruptedException
-
whenLess
wait until value less than c, then run action if nonnull. The action is run with the synchronization lock held.- Throws:
InterruptedException
-
whenGreaterEqual
wait until value greater than or equal to c, then run action if nonnull. The action is run with the synchronization lock held.- Throws:
InterruptedException
-
whenGreater
wait until value greater than c, then run action if nonnull. The action is run with the synchronization lock held.- Throws:
InterruptedException
-