API disclaimers such as “client API commands are not guaranteed to be atomic” are confusing in the context of parallel execution of threads. For example, since API users cannot know whether ‘eglMakeCurrent’ causes any client API operations, they cannot know whether call ‘eglMakeCurrent(dpy, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE)’ at the very end of a thread will finish before call to ‘eglMakeCurent(dpy, draw, read, ctx)’ at the very start of the next thread, where ‘ctx’ was bound to ‘draw’ and ‘read’ in the first thread. In this example, standard should include guidance whether it is up to the implementation or the user to manage effects of parallel calls to specific functions.
For reference, general issue "Parallel execution of threads" is defined as issue #29.
API disclaimers such as “client API commands are not guaranteed to be atomic” are confusing in the context of parallel execution of threads. For example, since API users cannot know whether ‘eglMakeCurrent’ causes any client API operations, they cannot know whether call ‘eglMakeCurrent(dpy, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE)’ at the very end of a thread will finish before call to ‘eglMakeCurent(dpy, draw, read, ctx)’ at the very start of the next thread, where ‘ctx’ was bound to ‘draw’ and ‘read’ in the first thread. In this example, standard should include guidance whether it is up to the implementation or the user to manage effects of parallel calls to specific functions.
For reference, general issue "Parallel execution of threads" is defined as issue #29.