From 102f1e6fc3a230960b850d478874896303d4b7f0 Mon Sep 17 00:00:00 2001 From: hai007 Date: Fri, 19 Feb 2021 11:29:29 -0800 Subject: [PATCH] 358291589 Fix deadlock in BluetoothServerSocket::Accept. --- cpp/platform/impl/g3/bluetooth_classic.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cpp/platform/impl/g3/bluetooth_classic.cc b/cpp/platform/impl/g3/bluetooth_classic.cc index 331031e6..ffd66ee8 100644 --- a/cpp/platform/impl/g3/bluetooth_classic.cc +++ b/cpp/platform/impl/g3/bluetooth_classic.cc @@ -92,9 +92,8 @@ BluetoothDevice* BluetoothSocket::GetRemoteDevice() { std::unique_ptr BluetoothServerSocket::Accept() { absl::MutexLock lock(&mutex_); - while (pending_sockets_.empty()) { + while (!closed_ && pending_sockets_.empty()) { cond_.Wait(&mutex_); - if (closed_) break; } // whether or not we were running in the wait loop, return early if closed. if (closed_) return {};