summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/btif/src/btif_a2dp_source.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/system/btif/src/btif_a2dp_source.cc b/system/btif/src/btif_a2dp_source.cc
index d58e3de696..70634b9984 100644
--- a/system/btif/src/btif_a2dp_source.cc
+++ b/system/btif/src/btif_a2dp_source.cc
@@ -531,9 +531,15 @@ bool btif_a2dp_source_restart_session(const RawAddress& old_peer_address,
bool btif_a2dp_source_end_session(const RawAddress& peer_address) {
log::info("peer_address={} state={}", peer_address, btif_a2dp_source_cb.StateStr());
- local_thread()->DoInThread(FROM_HERE,
- base::BindOnce(&btif_a2dp_source_end_session_delayed, peer_address));
- btif_a2dp_source_cleanup_codec();
+ if (com::android::bluetooth::flags::a2dp_source_threading_fix()) {
+ btif_a2dp_source_cleanup_codec();
+ btif_a2dp_source_end_session_delayed(peer_address);
+ } else {
+
+ local_thread()->DoInThread(FROM_HERE,
+ base::BindOnce(&btif_a2dp_source_end_session_delayed, peer_address));
+ btif_a2dp_source_cleanup_codec();
+ }
return true;
}