EDU.oswego.cs.dl.util.concurrent

Class WaitableBoolean

Implemented Interfaces:
Cloneable, Comparable, Executor

public class WaitableBoolean
extends SynchronizedBoolean

A class useful for offloading synch for boolean instance variables.

[ Introduction to this package. ]

Field Summary

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

value_

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

lock_

Constructor Summary

WaitableBoolean(boolean initialValue)
Make a new WaitableBoolean with the given initial value *
WaitableBoolean(boolean initialValue, Object lock)
Make a new WaitableBoolean with the given initial value, and using the supplied lock.

Method Summary

boolean
and(boolean b)
Set value to value & b.
boolean
commit(boolean assumedValue, boolean newValue)
Set value to newValue only if it is currently assumedValue.
boolean
complement()
Set the value to its complement
boolean
or(boolean b)
Set value to value | b.
boolean
set(boolean newValue)
Set to newValue.
void
whenEqual(boolean c, Runnable action)
Wait until value equals c, then run action if nonnull.
void
whenFalse(Runnable action)
Wait until value is false, then run action if nonnull.
void
whenNotEqual(boolean c, Runnable action)
wait until value not equal to c, then run action if nonnull.
void
whenTrue(Runnable action)
wait until value is true, then run action if nonnull.
boolean
xor(boolean b)
Set value to value ^ b.

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

and, commit, compareTo, compareTo, compareTo, complement, equals, get, hashCode, or, set, swap, toString, xor

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

execute, getLock

Constructor Details

WaitableBoolean

public WaitableBoolean(boolean initialValue)
Make a new WaitableBoolean with the given initial value *


WaitableBoolean

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

Method Details

and

public boolean and(boolean b)
Set value to value & b.
Overrides:
and in interface SynchronizedBoolean

Returns:
the new value


commit

public boolean commit(boolean assumedValue,
                      boolean newValue)
Set value to newValue only if it is currently assumedValue.
Overrides:
commit in interface SynchronizedBoolean

Returns:
true if successful


complement

public boolean complement()
Set the value to its complement
Overrides:
complement in interface SynchronizedBoolean

Returns:
the new value


or

public boolean or(boolean b)
Set value to value | b.
Overrides:
or in interface SynchronizedBoolean

Returns:
the new value


set

public boolean set(boolean newValue)
Set to newValue.
Overrides:
set in interface SynchronizedBoolean

Returns:
the old value


whenEqual

public void whenEqual(boolean c,
                      Runnable action)
            throws InterruptedException
Wait until value equals c, then run action if nonnull. The action is run with the synchronization lock held.


whenFalse

public void whenFalse(Runnable action)
            throws InterruptedException
Wait until value is false, then run action if nonnull. The action is run with the synchronization lock held.


whenNotEqual

public void whenNotEqual(boolean c,
                         Runnable action)
            throws InterruptedException
wait until value not equal to c, then run action if nonnull. The action is run with the synchronization lock held.


whenTrue

public void whenTrue(Runnable action)
            throws InterruptedException
wait until value is true, then run action if nonnull. The action is run with the synchronization lock held.


xor

public boolean xor(boolean b)
Set value to value ^ b.
Overrides:
xor in interface SynchronizedBoolean

Returns:
the new value