logd: add thread setname
- permits easier determination of logd thread at
fault in a stack trace from debuggerd.
Bug: 14275676
Change-Id: Iac2c523147e2bcce34ab7ddcecd02582c5fa7cc0
diff --git a/logd/CommandListener.cpp b/logd/CommandListener.cpp
index a7bf92b..1f3fd0e 100644
--- a/logd/CommandListener.cpp
+++ b/logd/CommandListener.cpp
@@ -21,6 +21,7 @@
#include <netinet/in.h>
#include <string.h>
#include <stdlib.h>
+#include <sys/prctl.h>
#include <sys/socket.h>
#include <sys/types.h>
@@ -66,8 +67,13 @@
, mBuf(*buf)
{ }
+static void setname() {
+ prctl(PR_SET_NAME, "logd.control");
+}
+
int CommandListener::ClearCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
+ setname();
if (!clientHasLogCredentials(cli)) {
cli->sendMsg("Permission Denied");
return 0;
@@ -96,6 +102,7 @@
int CommandListener::GetBufSizeCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
+ setname();
if (argc < 2) {
cli->sendMsg("Missing Argument");
return 0;
@@ -121,6 +128,7 @@
int CommandListener::SetBufSizeCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
+ setname();
if (!clientHasLogCredentials(cli)) {
cli->sendMsg("Permission Denied");
return 0;
@@ -154,6 +162,7 @@
int CommandListener::GetBufSizeUsedCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
+ setname();
if (argc < 2) {
cli->sendMsg("Missing Argument");
return 0;
@@ -197,6 +206,7 @@
int CommandListener::GetStatisticsCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
+ setname();
uid_t uid = cli->getUid();
gid_t gid = cli->getGid();
if (clientHasLogCredentials(cli)) {
@@ -236,6 +246,7 @@
int CommandListener::GetPruneListCmd::runCommand(SocketClient *cli,
int /*argc*/, char ** /*argv*/) {
+ setname();
char *buf = NULL;
mBuf.formatPrune(&buf);
if (!buf) {
@@ -255,6 +266,7 @@
int CommandListener::SetPruneListCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
+ setname();
if (!clientHasLogCredentials(cli)) {
cli->sendMsg("Permission Denied");
return 0;