how to avoid busy wait in rtpQueryExecute

I am calling rtpQueryExecute(q, 0) which is the blocking version. Tracing shows that it loops at 66kHz, calling clock_gettime (from cuEventSynchronize). See below.

1475620902.960815 clock_gettime(CLOCK_MONOTONIC_RAW,
{2395, 827450470}
) = 0 <0.000005>
1475620902.960832 clock_gettime(CLOCK_MONOTONIC_RAW,
{2395, 827467108}
) = 0 <0.000004>
1475620902.960848 clock_gettime(CLOCK_MONOTONIC_RAW,
{2395, 827483171}
) = 0 <0.000005>
#0 0x00007ffe029d89ac in clock_gettime ()
#1 0x00007f025195185d in _GI__clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:115
#2 0x00007f0244e472ce in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#3 0x00007f0244ed4395 in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#4 0x00007f0244e17551 in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#5 0x00007f0244d47cad in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#6 0x00007f0244e7b762 in cuEventSynchronize () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#7 0x00007f0254a3d84e in ?? ()
from [...]optix_SSDK-3.9.0_Slib64/liboptix_prime.so.1
#8 0x00007f0254a71994 in ?? ()
from [...]optix_SSDK-3.9.0_Slib64/liboptix_prime.so.1
#9 0x00007f025497e2ac in ?? ()
from [...]optix_SSDK-3.9.0_Slib64/liboptix_prime.so.1
#10 0x00007f025497d3aa in ?? ()
from [...]optix_SSDK-3.9.0_Slib64/liboptix_prime.so.1
#11 0x00007f0254959ba5 in ?? ()
from [...]optix_SSDK-3.9.0_Slib64/liboptix_prime.so.1
#12 0x00007f025495e438 in rtpQueryExecute ()

Based on the doc, the only alternative I can think of is to run the query asynchronously and roll my own polling loop at a lower rate based on estimates for my task. However I was wondering if there was a smarter way, e.g. a callback, or a condition variable?