From: howon kim Date: Thu, 2 Feb 2017 04:40:06 +0000 (+0900) Subject: sched_yield() after sync read/write to avoid thread starvation X-Git-Tag: submit/tizen_3.0/20170207.090553^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1228382c19884681bfdfbdec5a668e9d195a6f21;p=platform%2Fcore%2Fapi%2Faudio-io.git sched_yield() after sync read/write to avoid thread starvation [Version] 0.3.64 [Profile] Common [Issue Type] BUG Change-Id: Iaa265baa7d49686c03ab8558277b5f9827ef673e Signed-off-by: howon kim --- diff --git a/packaging/capi-media-audio-io.spec b/packaging/capi-media-audio-io.spec index 6f632fb..f348dd6 100644 --- a/packaging/capi-media-audio-io.spec +++ b/packaging/capi-media-audio-io.spec @@ -1,6 +1,6 @@ Name: capi-media-audio-io Summary: An Audio Input & Audio Output library in Tizen Native API -Version: 0.3.63 +Version: 0.3.64 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/cpp/CAudioInput.cpp b/src/cpp/CAudioInput.cpp index 565024f..bb184e1 100644 --- a/src/cpp/CAudioInput.cpp +++ b/src/cpp/CAudioInput.cpp @@ -17,6 +17,7 @@ #include #include "CAudioIODef.h" +#include #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; diff --git a/src/cpp/CAudioOutput.cpp b/src/cpp/CAudioOutput.cpp index 4300fea..c2a517d 100644 --- a/src/cpp/CAudioOutput.cpp +++ b/src/cpp/CAudioOutput.cpp @@ -16,6 +16,7 @@ #include "CAudioIODef.h" +#include using namespace std; using namespace tizen_media_audio; @@ -398,6 +399,7 @@ size_t CAudioOutput::write(const void* buffer, size_t length) throw(CAudioError) __mIsUsedSyncWrite = false; internalUnlock(); + sched_yield(); } catch (CAudioError e) { __mIsUsedSyncWrite = false; internalUnlock();