From 5a70eb4ed3e20be114ab8f26b5616a922fed230a Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Sat, 22 Oct 2022 22:57:32 +0900 Subject: [PATCH] universal7885: fm-aidl: Unlock and relock to thread --- .../apps/aidl-support/fm/default/FMDevControl.cpp | 3 ++- .../apps/aidl-support/fm/default/FMSupport.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/universal7885-common/apps/aidl-support/fm/default/FMDevControl.cpp b/universal7885-common/apps/aidl-support/fm/default/FMDevControl.cpp index 24157ad..25e5470 100644 --- a/universal7885-common/apps/aidl-support/fm/default/FMDevControl.cpp +++ b/universal7885-common/apps/aidl-support/fm/default/FMDevControl.cpp @@ -123,9 +123,10 @@ namespace aidl::vendor::eureka::hardware::fmradio { svc->setParam(value ? "routing=2": "routing=8"); break; case SetType::SET_TYPE_FM_SEARCH_START: + lock.unlock(); search_thread = std::thread([this] { + const std::lock_guard guard(lock); freqs_list = fm_radio_slsi::get_freqs(fd); - lock.unlock(); }); break; default: diff --git a/universal7885-common/apps/aidl-support/fm/default/FMSupport.cpp b/universal7885-common/apps/aidl-support/fm/default/FMSupport.cpp index b7b3693..0f22ad0 100644 --- a/universal7885-common/apps/aidl-support/fm/default/FMSupport.cpp +++ b/universal7885-common/apps/aidl-support/fm/default/FMSupport.cpp @@ -99,14 +99,15 @@ constexpr const char *FM_FREQ_SEEK = FM_SYSFS_BASE "/radio_freq_seek"; case SetType::SET_TYPE_FM_SPEAKER_ROUTE: NOT_SUPPORTED; case SetType::SET_TYPE_FM_SEARCH_START: + lock.unlock(); search_thread = std::thread([this] { + const std::lock_guard guard(lock); for (int i = 0; i < TRACK_SIZE; i++) { FileIO::writeline(FM_FREQ_SEEK, "1 " + std::to_string(SYSFS_SPACING * 10)); int freq = FileIO::readline(FM_FREQ_CTL); if (std::find(freqs_list.begin(), freqs_list.end(), freq) != freqs_list.end()) continue; freqs_list.push_back(freq); } - lock.unlock(); }); break; default: