glWaitSync — instruct the GL server to block until the specified sync object becomes signaled
| void glWaitSync( | GLsync sync, | 
| GLbitfield flags, | |
| GLuint64 timeout ); | 
syncSpecifies the sync object whose status to wait on.
flags
                    A bitfield controlling the command flushing behavior. flags may be zero.
                
timeout
                    Specifies the timeout that the server should wait before continuing. timeout must be GL_TIMEOUT_IGNORED.
                
            glWaitSync causes the GL server to block and wait until sync becomes signaled. sync
            is the name of an existing sync object upon which to wait. flags and timeout are currently not used and
            must be set to zero and the special value GL_TIMEOUT_IGNORED, respectively[1]. glWaitSync will always wait no longer than an implementation-dependent timeout. The
            duration of this timeout in nanoseconds may be queried by calling glGet with the
            parameter GL_MAX_SERVER_WAIT_TIMEOUT. There is currently no way to determine whether glWaitSync unblocked
            because the timeout expired or because the sync object being waited on was signaled.
        
            If an error occurs, glWaitSync does not cause the GL server to block.
        
            GL_INVALID_VALUE is generated if sync is not the name of a sync object.
        
            GL_INVALID_VALUE is generated if flags is not zero.
        
            GL_INVALID_VALUE is generated if timeout is not GL_TIMEOUT_IGNORED.
        
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/.
[1] flags and
            timeout are placeholders for anticipated future extensions of sync object capabilities. They must have these reserved values in
            order that existing code calling glWaitSync operate properly in the presence of such extensions.