summaryrefslogtreecommitdiffstats
path: root/fmradio/jni/android_fmradio_Receiver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fmradio/jni/android_fmradio_Receiver.cpp')
-rwxr-xr-xfmradio/jni/android_fmradio_Receiver.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/fmradio/jni/android_fmradio_Receiver.cpp b/fmradio/jni/android_fmradio_Receiver.cpp
index 78e3e16..10a0466 100755
--- a/fmradio/jni/android_fmradio_Receiver.cpp
+++ b/fmradio/jni/android_fmradio_Receiver.cpp
@@ -1362,8 +1362,11 @@ static void androidFmRadioRxSetRDS(JNIEnv * env, jobject obj,
/* if in pause state temporary resume */
androidFmRadioTempResumeIfPaused(&fmReceiverSession);
+ /* temporary unlock to avoid deadlock with RDS callback */
+ pthread_mutex_unlock(fmReceiverSession.dataMutex_p);
retval = fmReceiverSession.vendorMethods_p->
set_rds_reception(&fmReceiverSession.vendorData_p, receiveRDS);
+ pthread_mutex_lock(fmReceiverSession.dataMutex_p);
androidFmRadioPauseIfTempResumed(&fmReceiverSession);
} else {