diff src/EDU/oswego/cs/dl/util/concurrent/misc/FIFOSlot.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/misc/FIFOSlot.java	Sat Mar 21 11:00:06 2009 +0000
@@ -0,0 +1,43 @@
+package EDU.oswego.cs.dl.util.concurrent.misc;
+import  EDU.oswego.cs.dl.util.concurrent.*;
+
+
+// demo showing one way to make special channels
+
+public class FIFOSlot implements BoundedChannel {
+  private final Slot slot_;
+
+  public FIFOSlot() {
+    try {
+      slot_ = new Slot(FIFOSemaphore.class);
+    }
+    catch (Exception ex) {
+      ex.printStackTrace();
+      throw new Error("Cannot make Slot?");
+    }
+  }
+
+  public void put(Object item) throws InterruptedException { 
+    slot_.put(item); 
+  }
+
+  public boolean offer(Object item, long msecs) throws InterruptedException {
+    return slot_.offer(item, msecs);
+  }
+
+  public Object take() throws InterruptedException { 
+    return slot_.take(); 
+  }
+
+  public Object poll(long msecs) throws InterruptedException {
+    return slot_.poll(msecs);
+  }
+
+  public int capacity() { return 1; }
+
+  public Object peek() {
+    return slot_.peek();
+  }
+}
+
+