Package org.jgroups.util
Class Promise<T>
- java.lang.Object
-
- org.jgroups.util.Promise<T>
-
public class Promise<T> extends java.lang.ObjectAllows 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.ConditiongetCond()java.util.concurrent.locks.LockgetLock()TgetResult()TgetResult(long timeout)Returns the result, but never throws a TimeoutException; returns null instead.TgetResultWithTimeout(long timeout)Blocks until a result is available, or timeout milliseconds have elapsedbooleanhasResult()Checks whether result is available.voidreset()Causes all waiting threads to returnvoidsetResult(T obj)Sets the result and notifies any threads waiting for itjava.lang.StringtoString()
-
-
-
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:
toStringin classjava.lang.Object
-
-