diff options
Diffstat (limited to 'fmradio')
-rwxr-xr-x | fmradio/jni/android_fmradio_Receiver.cpp | 3 |
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 { |