Package org.jgroups.util
Class Promise<T>
- java.lang.Object
-
- org.jgroups.util.Promise<T>
-
public class Promise<T> extends java.lang.Object
Allows a thread to submit an asynchronous request and to wait for the result. The caller may choose to check for the result at a later time, or immediately and it may block or not. Both the caller and responder have to know the promise.- Version:
- $Id: Promise.java,v 1.12.2.1 2007/11/20 08:37:24 belaban Exp $
- Author:
- Bela Ban
-
-
Constructor Summary
Constructors Constructor Description Promise()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.locks.Condition
getCond()
java.util.concurrent.locks.Lock
getLock()
T
getResult()
T
getResult(long timeout)
Returns the result, but never throws a TimeoutException; returns null instead.T
getResultWithTimeout(long timeout)
Blocks until a result is available, or timeout milliseconds have elapsedboolean
hasResult()
Checks whether result is available.void
reset()
Causes all waiting threads to returnvoid
setResult(T obj)
Sets the result and notifies any threads waiting for itjava.lang.String
toString()
-
-
-
Method Detail
-
getLock
public java.util.concurrent.locks.Lock getLock()
-
getCond
public java.util.concurrent.locks.Condition getCond()
-
getResultWithTimeout
public T getResultWithTimeout(long timeout) throws TimeoutException
Blocks until a result is available, or timeout milliseconds have elapsed- Parameters:
timeout
-- Returns:
- An object
- Throws:
TimeoutException
- If a timeout occurred (implies that timeout > 0)
-
getResult
public T getResult()
-
getResult
public T getResult(long timeout)
Returns the result, but never throws a TimeoutException; returns null instead.- Parameters:
timeout
-- Returns:
- Object
-
hasResult
public boolean hasResult()
Checks whether result is available. Does not block.
-
setResult
public void setResult(T obj)
Sets the result and notifies any threads waiting for it
-
reset
public void reset()
Causes all waiting threads to return
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-