AudioFlinger: Ensure RecordTrack dtor called outside lock (pt 2)

Update RecordThread activeTrack handling.

Flag: EXEMPT bugfix
Test: atest AudioRecordTest
Bug: 329604636
Merged-In: I365ce3a63b2033325b659d60a3557db3c52e6575
Change-Id: I365ce3a63b2033325b659d60a3557db3c52e6575
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index d8eebf0..d39a9a1 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -8649,6 +8649,9 @@
 
         // loop over each active track
         for (size_t i = 0; i < size; i++) {
+            if (activeTrack) {  // ensure track release is outside lock.
+                oldActiveTracks.emplace_back(std::move(activeTrack));
+            }
             activeTrack = activeTracks[i];
 
             // skip fast tracks, as those are handled directly by FastCapture