eglClientWaitSync — Wait in the client for a sync object to be signalled
                EGLint eglClientWaitSync(
               | 
              (EGLDisplay display, | 
| EGLSync sync, | |
| EGLint flags, | |
EGLTime timeout); | 
            
display
                
              
            Specifies the EGL display connection.
sync
                
              
            Specifies the sync object to wait on.
flags
                
              
            Specifies flags controlling wait behavior.
timeout
                
              
            Specifies wait timeout interval.
            eglClientWaitSync blocks the calling thread
            until the specified sync object sync is
            signaled, or until timeout nanoseconds
            have passed.
        
            More than one eglClientWaitSync may be
            outstanding on the same sync at any given
            time. When there are multiple threads blocked on the same
            sync and the sync object is signaled, all
            such threads are released, but the order in which they are
            released is not defined.
        
            If the value of timeout is zero, then
            eglClientWaitSync simply tests the current
            status of sync. If the value of
            timeout is the special value
            EGL_FOREVER, then
            eglClientWaitSync does not time out. For
            all other values, timeout is adjusted to
            the closest value allowed by the implementation-dependent
            timeout accuracy, which may be substantially longer than one
            nanosecond.
        
            eglClientWaitSync returns one of three
            status values describing the reason for returning. A return
            value of EGL_TIMEOUT_EXPIRED indicates that
            the specified timeout period expired before
            sync was signaled, or if
            timeout is zero, indicates that
            sync is not signaled. A return value of
            EGL_CONDITION_SATISFIED indicates that
            sync was signaled before the timeout
            expired, which includes the case when
            sync was already signaled when
            eglClientWaitSync was called. If an error
            occurs then an error is generated and
            EGL_FALSE is returned.
        
            If the sync object being blocked upon will not be signaled in
            finite time (for example, by an associated fence command issued
            previously, but not yet flushed to the graphics pipeline), then
            eglClientWaitSync may wait forever. To help
            prevent this behavior, if the
            EGL_SYNC_FLUSH_COMMANDS_BIT bit is set in
            flags, and sync is
            unsignaled when eglClientWaitSync is
            called, then the equivalent of Flush() will be performed for the
            current API context (i.e., the context returned by
            eglGetCurrentContext) before blocking on
            sync. If no context is current for the
            bound API, the EGL_SYNC_FLUSH_COMMANDS_BIT
            bit is ignored.
        
            Note: the simple Flush behavior defined by
            EGL_SYNC_FLUSH_COMMANDS_BIT will not help
            when waiting for a fence command issued in a different context's
            command stream. Applications which block on a fence sync object
            must take additional steps to ensure that the context from which
            the associated fence command was issued has flushed that command
            to the graphics pipeline.
        
            eglClientWaitSync returns
            EGL_FALSE on failure.
        
            If sync is not a valid sync object for
            display, an
            EGL_BAD_PARAMETER error is generated.
        
            If display does not match the
            EGLDisplay passed to
            eglCreateSync when
            sync was created, the behaviour is
            undefined.
        
            eglClientWaitSync is available only if the
            EGL version is 1.5 or greater.
        
            eglCreateSync,
            eglGetCurrentContext,
            eglWaitSync,
            glFinish,
            vgFinish
        
        Copyright © 2003-2014 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the condition that this copyright notice and permission notice shall be included in all copies or substantial portions of the Materials.