EDU.oswego.cs.dl.util.concurrent

Class SynchronizedChar

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

public class SynchronizedChar
extends SynchronizedVariable
implements Comparable, Cloneable

A class useful for offloading synch for char instance variables.

[ Introduction to this package. ]

Field Summary

protected char
value_

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

lock_

Constructor Summary

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

Method Summary

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

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

execute, getLock

Field Details

value_

protected char value_

Constructor Details

SynchronizedChar

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


SynchronizedChar

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

Method Details

add

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

Returns:
the new value


commit

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

Returns:
true if successful


compareTo

public int compareTo(SynchronizedChar other)


compareTo

public int compareTo(Object other)


compareTo

public int compareTo(char other)


divide

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

Returns:
the new value


equals

public boolean equals(Object other)


get

public final char get()
Return the current value


hashCode

public int hashCode()


multiply

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

Returns:
the new value


set

public char set(char newValue)
Set to newValue.

Returns:
the old value


subtract

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

Returns:
the new value


swap

public char swap(SynchronizedChar other)
Atomically swap values with another SynchronizedChar. Uses identityHashCode to avoid deadlock when two SynchronizedChars 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()