Accessed mIsTerminating inside the same lock as what is used in while
loop in worker thread class of broadcast radio HAL utils lib. This fixed
the race condition that mIsTerminating is accessed as true in threadLoop
while the destructor is setting mIsTerminating as false, which causes the
thread waits forever for lock after lock is released in the desctructor.
Bug: 314100017
Test: atest VtsHalBroadcastradioAidlTargetTest WorkerThreadTest
Change-Id: I885e1487ac39525fc2d1ee2134d24409264ca0fc
Due to RadioTuner API documentation, onTuneFailed should be called
when a pending tuning operation is canceled. Therefore, a new
result value Canceled was added in broadcast radio HAL. The
onTuneFailed callback for pending tuning operations in default HAL
was implemented by adding whatIfCanceled function field in Task
struct in WorkerThread utils class.
Bug: 257337458
Test: atest RadioTunerTest#cancel_whenTune
Test: atest RadioTunerTest#cancel_whenSeek
Change-Id: I901ab2cc3561082e5f11a9f6c33db044fc9bc28b
Currently mThread is started in initializer list, but
not in constructor, when the thread starts in initializer
list, not all class members are init yet (depends on the
order of class member declarations).
And mThread will use class members.
Putting mThread to starts in constructor ensures all
class member variables are init before thread starts.
Bug: 231737939
Test: build
Change-Id: I4033efa9f13c2ece95c4b4f99f8c88b6d4816be1