Mercurial > hg > blitz_condensed
diff src/EDU/oswego/cs/dl/util/concurrent/Barrier.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/EDU/oswego/cs/dl/util/concurrent/Barrier.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,61 @@ + +/* + File: Barrier.java + + Originally written by Doug Lea and released into the public domain. + This may be used for any purposes whatsoever without acknowledgment. + Thanks for the assistance and support of Sun Microsystems Labs, + and everyone contributing, testing, and using this code. + + History: + Date Who What + 11Jun1998 dl Create public version +*/ + +package EDU.oswego.cs.dl.util.concurrent; + +/** + * Barriers serve + * as synchronization points for groups of threads that + * must occasionally wait for each other. + * Barriers may support any of several methods that + * accomplish this synchronization. This interface + * merely expresses their minimal commonalities: + * <ul> + * <li> Every barrier is defined for a given number + * of <code>parties</code> -- the number of threads + * that must meet at the barrier point. (In all current + * implementations, this + * value is fixed upon construction of the Barrier.) + * <li> A barrier can become <code>broken</code> if + * one or more threads leave a barrier point prematurely, + * generally due to interruption or timeout. Corresponding + * synchronization methods in barriers fail, throwing + * BrokenBarrierException for other threads + * when barriers are in broken states. + * </ul> + * <p>[<a href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>] + + **/ +public interface Barrier { + + + /** + * Return the number of parties that must meet per barrier + * point. The number of parties is always at least 1. + **/ + + public int parties(); + + /** + * Returns true if the barrier has been compromised + * by threads leaving the barrier before a synchronization + * point (normally due to interruption or timeout). + * Barrier methods in implementation classes throw + * throw BrokenBarrierException upon detection of breakage. + * Implementations may also support some means + * to clear this status. + **/ + + public boolean broken(); +}