glXSwapBuffers() gobbling up a full CPU core when vsync is off

UPDATE

Adding a glFinish() before the swap buffers does not help.

Using __GL_YIELD=USLEEP will however, make CPU usage drop from 100% of a core, to 20% of a core.