diff src/EDU/oswego/cs/dl/util/concurrent/NullSync.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/NullSync.java	Sat Mar 21 11:00:06 2009 +0000
@@ -0,0 +1,47 @@
+/*
+  File: NullSync.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
+  1Aug1998  dl               Create public version
+*/
+
+package EDU.oswego.cs.dl.util.concurrent;
+
+/**
+ * A No-Op implementation of Sync. Acquire never blocks,
+ * Attempt always succeeds, Release has no effect.
+ * However, acquire and release do detect interruption
+ * and throw InterruptedException. Also, the methods
+ * are synchronized, so preserve memory barrier properties
+ * of Syncs.
+ * <p>
+ * NullSyncs can be useful in optimizing classes when
+ * it is found that locking is not strictly necesssary.
+ *
+ * <p>[<a href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>]
+**/
+
+
+public class NullSync implements Sync {
+
+  public synchronized void acquire() throws InterruptedException {
+    if (Thread.interrupted()) throw new InterruptedException();
+  }
+
+  public synchronized boolean attempt(long msecs) throws InterruptedException {
+    if (Thread.interrupted()) throw new InterruptedException();
+    return true;
+  }
+
+  public synchronized void release() {}
+
+
+}
+
+