2010 Khronos Group
glClientWaitSync 3G
glClientWaitSync block and wait for a sync object to become signaled

## C Specification

GLenum `glClientWaitSync` GLsync sync GLbitfield flags GLuint64 timeout

## Parameters

sync

  The sync object whose status to wait on.

flags

  A bitfield controlling the command flushing behavior. flags may be `GL_SYNC_FLUSH_COMMANDS_BIT`.

timeout

  The timeout, specified in nanoseconds, for which the implementation should wait for sync to become signaled.

## Description

`glClientWaitSync` causes the client to block and wait for the sync object specified by sync to become signaled. If sync is signaled when `glClientWaitSync` is called, `glClientWaitSync` returns immediately, otherwise it will block and wait for up to timeout nanoseconds for sync to become signaled.

The return value is one of four status values:

- `GL_ALREADY_SIGNALED` indicates that sync was signaled at the time that `glClientWaitSync` was called.

- `GL_TIMEOUT_EXPIRED` indicates that at least timeout nanoseconds passed and sync did not become signaled.

- `GL_CONDITION_SATISFIED` indicates that sync was signaled before the timeout expired.

- `GL_WAIT_FAILED` indicates that an error occurred. Additionally, an OpenGL error will be generated.

## Notes

`glClientWaitSync` is available only if the GL version is 3.2 or greater.

## Errors

`GL_INVALID_VALUE` is generated if sync is not the name of an existing sync object.

`GL_INVALID_VALUE` is generated if flags contains any unsupported flag.

## See Also

glFenceSync, glIsSync glWaitSync

## Copyright

Copyright 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.