Lock threaded mainloop before reset callbacks for safety 43/116543/1 accepted/tizen/3.0/common/20170228.061507 accepted/tizen/3.0/ivi/20170228.033955 accepted/tizen/3.0/mobile/20170228.033909 accepted/tizen/3.0/tv/20170228.033930 accepted/tizen/3.0/wearable/20170228.033940 submit/tizen_3.0/20170227.122312
authorSeungbae Shin <seungbae.shin@samsung.com>
Mon, 27 Feb 2017 02:19:52 +0000 (11:19 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Mon, 27 Feb 2017 02:19:52 +0000 (11:19 +0900)
[Version] 0.3.69
[Profile] Common
[Issue Type] Bug

Change-Id: I258490b69489c09ac4fe17a388bbaf69b00a073c

packaging/capi-media-audio-io.spec
src/cpp/CPulseAudioClient.cpp

index e1c78c7..37f800d 100644 (file)
@@ -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
index 8c0d379..c59de3d 100644 (file)
@@ -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;