Method from EDU.oswego.cs.dl.util.concurrent.SynchronizedLong Detail: |
public long add(long amount) {
synchronized (lock_) {
return value_ += amount;
}
}
Add amount to value (i.e., set value += amount) |
public long and(long b) {
synchronized (lock_) {
value_ = value_ & b;
return value_;
}
}
|
public boolean commit(long assumedValue,
long newValue) {
synchronized(lock_) {
boolean success = (assumedValue == value_);
if (success) value_ = newValue;
return success;
}
}
Set value to newValue only if it is currently assumedValue. |
public int compareTo(long other) {
long val = get();
return (val < other)? -1 : (val == other)? 0 : 1;
}
|
public int compareTo(SynchronizedLong other) {
return compareTo(other.get());
}
|
public int compareTo(Object other) {
return compareTo((SynchronizedLong)other);
}
|
public long complement() {
synchronized (lock_) {
value_ = ~value_;
return value_;
}
}
Set the value to its complement |
public long decrement() {
synchronized (lock_) {
return --value_;
}
}
|
public long divide(long factor) {
synchronized (lock_) {
return value_ /= factor;
}
}
Divide value by factor (i.e., set value /= factor) |
public boolean equals(Object other) {
if (other != null &&
other instanceof SynchronizedLong)
return get() == ((SynchronizedLong)other).get();
else
return false;
}
|
public final long get() {
synchronized(lock_) { return value_; }
}
|
public int hashCode() {
// same expression as java.lang.Long
long v = get();
return (int)(v ^ (v > > 32));
}
|
public long increment() {
synchronized (lock_) {
return ++value_;
}
}
|
public long multiply(long factor) {
synchronized (lock_) {
return value_ *= factor;
}
}
Multiply value by factor (i.e., set value *= factor) |
public long negate() {
synchronized (lock_) {
value_ = -value_;
return value_;
}
}
Set the value to the negative of its old value |
public long or(long b) {
synchronized (lock_) {
value_ = value_ | b;
return value_;
}
}
|
public long set(long newValue) {
synchronized (lock_) {
long old = value_;
value_ = newValue;
return old;
}
}
|
public long subtract(long amount) {
synchronized (lock_) {
return value_ -= amount;
}
}
Subtract amount from value (i.e., set value -= amount) |
public long swap(SynchronizedLong other) {
if (other == this) return get();
SynchronizedLong fst = this;
SynchronizedLong snd = other;
if (System.identityHashCode(fst) > System.identityHashCode(snd)) {
fst = other;
snd = this;
}
synchronized(fst.lock_) {
synchronized(snd.lock_) {
fst.set(snd.set(fst.get()));
return get();
}
}
}
Atomically swap values with another SynchronizedLong.
Uses identityHashCode to avoid deadlock when
two SynchronizedLongs attempt to simultaneously swap with each other. |
public String toString() {
return String.valueOf(get());
}
|
public long xor(long b) {
synchronized (lock_) {
value_ = value_ ^ b;
return value_;
}
}
|