diff options
Diffstat (limited to 'modules/sensors/SensorEventQueue.cpp')
-rw-r--r-- | modules/sensors/SensorEventQueue.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/sensors/SensorEventQueue.cpp b/modules/sensors/SensorEventQueue.cpp index 00013ded..6928034d 100644 --- a/modules/sensors/SensorEventQueue.cpp +++ b/modules/sensors/SensorEventQueue.cpp @@ -81,8 +81,12 @@ void SensorEventQueue::dequeue() { mStart = (mStart + 1) % mCapacity; } -void SensorEventQueue::waitForSpace(pthread_mutex_t* mutex) { +// returns true if it waited, or false if it was a no-op. +bool SensorEventQueue::waitForSpace(pthread_mutex_t* mutex) { + bool waited = false; while (mSize == mCapacity) { + waited = true; pthread_cond_wait(&mSpaceAvailableCondition, mutex); } + return waited; } |