Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
WilliamI-H's avatar
WilliamI-H
Explorer
2 years ago

Slow C++ synchronization primitives on Quest

Hello all,

I've recently found that some C++ synchronization primitive operations (specifically std::condition_variable::notify_one() and std::counting_semaphore<>::release()) are very slow on Meta Quest. These functions are taking several milliseconds in some cases, whereas I would expect them to only take microseconds. Other operations (e.g. mutex locking) are fine, and have no performance issues. But these two specific examples (cond vars and semaphores) are very slow. NB: The specific operations I've mentioned are ones that are not expected to block. Obviously waiting on a cond var may be slow, or acquiring a semaphore may be slow. But notifying a cond var or releasing a semaphore should be very fast. Has anyone else experienced this? Does anyone know why this might be happening?


Thanks!

No RepliesBe the first to reply