SocketClient: add optional reference counting
Needed to fix a race in netd.
Bug: 3438459
Change-Id: Icd7f5f035510235f733a25c0621479d3e644b152
diff --git a/libsysutils/src/SocketListener.cpp b/libsysutils/src/SocketListener.cpp
index 611d5fe..dde9b55 100644
--- a/libsysutils/src/SocketListener.cpp
+++ b/libsysutils/src/SocketListener.cpp
@@ -55,7 +55,7 @@
}
SocketClientCollection::iterator it;
for (it = mClients->begin(); it != mClients->end();) {
- delete (*it);
+ (*it)->decRef();
it = mClients->erase(it);
}
delete mClients;
@@ -226,7 +226,7 @@
pthread_mutex_unlock(&mClientsLock);
/* Destroy the client */
close(c->getSocket());
- delete c;
+ c->decRef();
}
}
}