Package org.apache.felix.framework.util

# Class ThreadGate

java.lang.Object
org.apache.felix.framework.util.ThreadGate

public class ThreadGate extends Object
This class implements a simple one-shot gate for threads. The gate starts closed and will block any threads that try to wait on it. Once opened, all waiting threads will be released. The gate cannot be reused.

## Constructor Summary

Constructors
Constructor
Description
`ThreadGate()`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`await(long timeout)`
Wait for the gate to open.
`Object`
`getMessage()`
Returns the message object associated with the gate; the message is just an arbitrary object used to pass information to the waiting threads.
`void`
`open()`
Open the gate and release any waiting threads.
`void`
`setMessage(Object msg)`
Sets the message object associated with the gate.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ThreadGate

public ThreadGate()

## Method Details

### open

public void open()
Open the gate and release any waiting threads.

### getMessage

public Object getMessage()
Returns the message object associated with the gate; the message is just an arbitrary object used to pass information to the waiting threads.

Returns:
  the message object associated with the gate.

### setMessage

public void setMessage(Object msg)
Sets the message object associated with the gate. The message object can only be set once, subsequent calls to this method are ignored.

Parameters:
  `msg` - the message object to associate with this gate.

### await

public boolean await(long timeout) throws InterruptedException
Wait for the gate to open.

Returns:
  `true` if the gate was opened or `false` if the timeout expired.
Throws:
  `InterruptedException` - If the calling thread is interrupted; the gate still remains closed until opened.