EDU.oswego.cs.dl.util.concurrent

Class SynchronizedFloat

Implemented Interfaces:
Cloneable, Comparable, Executor
Known Direct Subclasses:
WaitableFloat

public class SynchronizedFloat
extends SynchronizedVariable
implements Comparable, Cloneable

A class useful for offloading synch for float instance variables.

[ Introduction to this package. ]

Field Summary

protected float
value_

Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable

lock_

Constructor Summary

SynchronizedFloat(float initialValue)
Make a new SynchronizedFloat with the given initial value, and using its own internal lock.
SynchronizedFloat(float initialValue, Object lock)
Make a new SynchronizedFloat with the given initial value, and using the supplied lock.

Method Summary

float
add(float amount)
Add amount to value (i.e., set value += amount)
boolean
commit(float assumedValue, float newValue)
Set value to newValue only if it is currently assumedValue.
int
compareTo(SynchronizedFloat other)
int
compareTo(Object other)
int
compareTo(float other)
float
divide(float factor)
Divide value by factor (i.e., set value /= factor)
boolean
equals(Object other)
float
get()
Return the current value
int
hashCode()
float
multiply(float factor)
Multiply value by factor (i.e., set value *= factor)
float
set(float newValue)
Set to newValue.
float
subtract(float amount)
Subtract amount from value (i.e., set value -= amount)
float
swap(SynchronizedFloat other)
Atomically swap values with another SynchronizedFloat.
String
toString()

Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable

execute, getLock

Field Details

value_

protected float value_

Constructor Details

SynchronizedFloat

public SynchronizedFloat(float initialValue)
Make a new SynchronizedFloat with the given initial value, and using its own internal lock.


SynchronizedFloat

public SynchronizedFloat(float initialValue,
                         Object lock)
Make a new SynchronizedFloat with the given initial value, and using the supplied lock.

Method Details

add

public float add(float amount)
Add amount to value (i.e., set value += amount)

Returns:
the new value


commit

public boolean commit(float assumedValue,
                      float newValue)
Set value to newValue only if it is currently assumedValue.

Returns:
true if successful


compareTo

public int compareTo(SynchronizedFloat other)


compareTo

public int compareTo(Object other)


compareTo

public int compareTo(float other)


divide

public float divide(float factor)
Divide value by factor (i.e., set value /= factor)

Returns:
the new value


equals

public boolean equals(Object other)


get

public final float get()
Return the current value


hashCode

public int hashCode()


multiply

public float multiply(float factor)
Multiply value by factor (i.e., set value *= factor)

Returns:
the new value


set

public float set(float newValue)
Set to newValue.

Returns:
the old value


subtract

public float subtract(float amount)
Subtract amount from value (i.e., set value -= amount)

Returns:
the new value


swap

public float swap(SynchronizedFloat other)
Atomically swap values with another SynchronizedFloat. Uses identityHashCode to avoid deadlock when two SynchronizedFloats attempt to simultaneously swap with each other. (Note: Ordering via identyHashCode is not strictly guaranteed by the language specification to return unique, orderable values, but in practice JVMs rely on them being unique.)

Returns:
the new value


toString

public String toString()