Change mClientList to std::set mClientSet
Change-Id: I34af8a96916032630c05ea3b4e9987a6e09d6f51
Fix: 119819092
Test: BufferHubBuffer_test (passed)
diff --git a/services/bufferhub/BufferHubService.cpp b/services/bufferhub/BufferHubService.cpp
index 409f2ea..81bd142 100644
--- a/services/bufferhub/BufferHubService.cpp
+++ b/services/bufferhub/BufferHubService.cpp
@@ -44,8 +44,8 @@
sp<BufferClient> client = BufferClient::create(this, node);
// Add it to list for bookkeeping and dumpsys.
- std::lock_guard<std::mutex> lock(mClientListMutex);
- mClientList.push_back(client);
+ std::lock_guard<std::mutex> lock(mClientSetMutex);
+ mClientSet.emplace(client);
_hidl_cb(/*bufferClient=*/client, /*status=*/BufferHubStatus::NO_ERROR);
return Void();
@@ -86,8 +86,8 @@
sp<BufferClient> client = new BufferClient(*originClient);
- std::lock_guard<std::mutex> lock(mClientListMutex);
- mClientList.push_back(client);
+ std::lock_guard<std::mutex> lock(mClientSetMutex);
+ mClientSet.emplace(client);
_hidl_cb(/*bufferClient=*/client, /*status=*/BufferHubStatus::NO_ERROR);
return Void();
}
@@ -114,10 +114,10 @@
void BufferHubService::onClientClosed(const BufferClient* client) {
removeTokenByClient(client);
- std::lock_guard<std::mutex> lock(mClientListMutex);
- auto iter = std::find(mClientList.begin(), mClientList.end(), client);
- if (iter != mClientList.end()) {
- mClientList.erase(iter);
+ std::lock_guard<std::mutex> lock(mClientSetMutex);
+ auto iter = std::find(mClientSet.begin(), mClientSet.end(), client);
+ if (iter != mClientSet.end()) {
+ mClientSet.erase(iter);
}
}