org.firebirdsql.pool
Class BlockingStack
java.lang.Object
|
+--org.firebirdsql.pool.BlockingStack
- public class BlockingStack
- extends java.lang.Object
Object stack that implements a blocking LIFO (last-in-first-out) stack. The
implementation will block when the list is empty.
- Author:
- Steven Jardine
Inner Class Summary |
protected class |
BlockingStack.Node
Container class for objects in the stack. |
Method Summary |
protected java.lang.Object |
extract()
|
boolean |
isEmpty()
Checks to see if the stack is empty. |
java.lang.Object |
peek()
Return, but do not remove, the object at the top of the stack. |
java.lang.Object |
pop()
Return and remove the object at the top of the stack. |
java.lang.Object |
pop(long msec)
Return and remove the object at the top of the stack only if it is
available within the specified number of milliseconds, otherwise return
null. |
void |
push(java.lang.Object item)
Push an object onto the stack. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
top
protected BlockingStack.Node top
- Actual top of the stack.
waiting
protected int waiting
- Number of threads waiting for an object.
topLock
protected java.lang.Object topLock
BlockingStack
public BlockingStack()
isEmpty
public boolean isEmpty()
- Checks to see if the stack is empty.
- Returns:
- true if empty, false otherwise.
peek
public java.lang.Object peek()
- Return, but do not remove, the object at the top of the stack.
- Returns:
- the object at the top of the stack, null if stack is empty.
extract
protected java.lang.Object extract()
pop
public java.lang.Object pop()
throws java.lang.InterruptedException
- Return and remove the object at the top of the stack. If the stack is
empty, wait until an object exists.
- Returns:
- the object at the top of the stack.
pop
public java.lang.Object pop(long msec)
throws java.lang.InterruptedException
- Return and remove the object at the top of the stack only if it is
available within the specified number of milliseconds, otherwise return
null.
- Parameters:
msec
- to wait for an object before returning null.- Returns:
- the object at the top of the stack.
- Throws:
java.lang.InterruptedException
-
push
public void push(java.lang.Object item)
throws java.lang.InterruptedException
- Push an object onto the stack. If the stack is unavailable, wait until it
becomes available.
- Parameters:
item
- to be pushed onto the stack.- Returns:
- true is successful, false otherwise.
- Throws:
java.lang.InterruptedException
-
Copyright © 2001 David Jencks and other authors. All rights reserved.