# ProcessorInstance.Pipe

> A bi-directional communication system typically between two logical threads.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Audio](/engine/6000.5/script-reference/unityengine/audio.md)
* **Assembly:** UnityEngine.AudioModule

```csharp
public ref struct ProcessorInstance.Pipe
```

## Remarks

One thread is referred to as "control" (main thread typically) and one as "realtime" (audio thread typically). Using [ControlContext](/engine/6000.5/script-reference/unityengine/audio/controlcontext.md) and [RealtimeContext](/engine/6000.5/script-reference/unityengine/audio/realtimecontext.md) as keys to the APIs, you can read data the other thread sent you or send data back.

## Methods

| Method                                                                                                           | Description                                                                                                                                                                                                                                                                 |
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GetAvailableData](/engine/6000.5/script-reference/unityengine/audio/processorinstance/pipe/getavailabledata.md) | Access an enumerator to the currently available data.                                                                                                                                                                                                                       |
| [SendData](/engine/6000.5/script-reference/unityengine/audio/processorinstance/pipe/senddata.md)                 | Send data from [ProcessorInstance.IRealtime](/engine/6000.5/script-reference/unityengine/audio/processorinstance/irealtime.md) to [ProcessorInstance.IControl\<TRealtime>](/engine/6000.5/script-reference/unityengine/audio/processorinstance/icontrol1.md) or vice versa. |
