sched_yield() after sync read/write to avoid thread starvation
[platform/core/api/audio-io.git] / src / cpp / CAudioInput.cpp
index 565024f..bb184e1 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <pulse/pulseaudio.h>
 #include "CAudioIODef.h"
+#include <sched.h>
 
 #define RECORDER_PRIVILEGE "http://tizen.org/privilege/recorder"
 #define CLIENT_NAME "AUDIO_IO_PA_CLIENT"
@@ -473,6 +474,7 @@ size_t CAudioInput::read(void* buffer, size_t length) throw(CAudioError) {
         ret = mpPulseAudioClient->read(buffer, length);
 
         internalUnlock();
+        sched_yield();
     } catch (CAudioError e) {
         internalUnlock();
         throw e;