Because that's the operation you want to do. The "client" is the CPU. `glWaitSync` tells the GPU to wait on the completion of a fence before processing further commands. But what you want is the CPU...