# GPUSyncFence

Artifact: [androidx.webgpu:webgpu](https://developer.android.com/jetpack/androidx/releases/webgpu) [View Source](https://cs.android.com/search?q=file:androidx/webgpu/GPUSyncFence.kt+class:androidx.webgpu.GPUSyncFence) Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

*** ** * ** ***


```
@ExperimentalWebGpuApi
public final class GPUSyncFence implements AutoCloseable
```

<br />

*** ** * ** ***

A unified abstraction for fence synchronization in WebGPU

This class is backed by a `ParcelFileDescriptor` representing a sync fence.

## Summary

| ### Public methods |
|---|---|
| `final boolean` | `https://developer.android.com/reference/androidx/webgpu/GPUSyncFence#await(kotlin.Long)(long timeoutMillis)` Waits for the fence to signal. |
| `void` | `https://developer.android.com/reference/androidx/webgpu/GPUSyncFence#close()()` |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUSyncFence` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 33) https://developer.android.com/reference/androidx/webgpu/GPUSyncFence#fromSyncFence(android.hardware.SyncFence)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/hardware/SyncFence.html syncFence)` Creates a GPUSyncFence from a platform SyncFence by extracting its file descriptor. |

| ### Extension functions |
|---|---|
| `final https://developer.android.com/reference/android/hardware/SyncFence.html` | `@https://developer.android.com/reference/androidx/webgpu/ExperimentalWebGpuApi https://developer.android.com/reference/androidx/webgpu/ExtensionsKt.https://developer.android.com/reference/androidx/webgpu/GPUSyncFence#(androidx.webgpu.GPUSyncFence).toSyncFence()(https://developer.android.com/reference/androidx/webgpu/GPUSyncFence receiver)` Converts to an Android platform `https://developer.android.com/reference/android/hardware/SyncFence.html`. |

## Public methods

### await

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final boolean await(long timeoutMillis)
```

Waits for the fence to signal.

### close

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public void close()
```

### fromSyncFence

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
@RequiresApi(value = 33)
public static final @NonNull GPUSyncFence fromSyncFence(@NonNull SyncFence syncFence)
```

Creates a GPUSyncFence from a platform SyncFence by extracting its file descriptor.

## Extension functions

### ExtensionsKt.toSyncFence

Artifact: [androidx.webgpu:webgpu](https://developer.android.com/jetpack/androidx/releases/webgpu) [View Source](https://cs.android.com/search?q=file:androidx/webgpu/helper/Extensions.kt+function:toSyncFence)

```
@ExperimentalWebGpuApi
public final SyncFence ExtensionsKt.toSyncFence(GPUSyncFence receiver)
```

Converts to an Android platform `https://developer.android.com/reference/android/hardware/SyncFence.html`.

Safely handles API level compatibility internally. On devices below Android T (API 33), this function will safely return `null` without requiring API version checks at the call site.