From 243796b13ca0483c90e25587b5e9c1cfbd7efb80 Mon Sep 17 00:00:00 2001 From: Seungbae Shin Date: Mon, 27 Feb 2017 11:19:52 +0900 Subject: [PATCH] Lock threaded mainloop before reset callbacks for safety [Version] 0.3.69 [Profile] Common [Issue Type] Bug Change-Id: I258490b69489c09ac4fe17a388bbaf69b00a073c --- packaging/capi-media-audio-io.spec | 2 +- src/cpp/CPulseAudioClient.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packaging/capi-media-audio-io.spec b/packaging/capi-media-audio-io.spec index e1c78c7..37f800d 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.68 +Version: 0.3.69 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/cpp/CPulseAudioClient.cpp b/src/cpp/CPulseAudioClient.cpp index 8c0d379..c59de3d 100644 --- a/src/cpp/CPulseAudioClient.cpp +++ b/src/cpp/CPulseAudioClient.cpp @@ -401,6 +401,9 @@ void CPulseAudioClient::finalize() { return; } + if (isInThread() == false) + pa_threaded_mainloop_lock(__mpMainloop); + /* clear callbacks */ if (__mDirection == EStreamDirection::STREAM_DIRECTION_PLAYBACK) pa_stream_set_write_callback(__mpStream, NULL, NULL); @@ -409,6 +412,9 @@ void CPulseAudioClient::finalize() { pa_stream_set_latency_update_callback(__mpStream, NULL, NULL); pa_stream_set_event_callback(__mpStream, NULL, NULL); + if (isInThread() == false) + pa_threaded_mainloop_unlock(__mpMainloop); + /* Wait for drain complete if draining before finalize */ if (__mIsDraining) { unsigned int drain_wait_count = 0; -- 2.7.4