Merge \\\"Handle long process names correctly.\\\" am: e2994438d2 am: d5a72fae4a
am: ea9616e48e
Change-Id: Ib14e7dbbba8f91de0491be9b91b5891ce8520c00
This commit is contained in:
@@ -299,9 +299,7 @@ int main(int argc, char* const argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!niceName.isEmpty()) {
|
if (!niceName.isEmpty()) {
|
||||||
const char* procName = niceName.string();
|
runtime.setArgv0(niceName.string(), true /* setProcName */);
|
||||||
pthread_setname_np(pthread_self(), procName);
|
|
||||||
runtime.setArgv0(procName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (zygote) {
|
if (zygote) {
|
||||||
|
|||||||
@@ -277,7 +277,15 @@ AndroidRuntime::~AndroidRuntime()
|
|||||||
return jniRegisterNativeMethods(env, className, gMethods, numMethods);
|
return jniRegisterNativeMethods(env, className, gMethods, numMethods);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidRuntime::setArgv0(const char* argv0) {
|
void AndroidRuntime::setArgv0(const char* argv0, bool setProcName) {
|
||||||
|
if (setProcName) {
|
||||||
|
int len = strlen(argv0);
|
||||||
|
if (len < 15) {
|
||||||
|
pthread_setname_np(pthread_self(), argv0);
|
||||||
|
} else {
|
||||||
|
pthread_setname_np(pthread_self(), argv0 + len - 15);
|
||||||
|
}
|
||||||
|
}
|
||||||
memset(mArgBlockStart, 0, mArgBlockLength);
|
memset(mArgBlockStart, 0, mArgBlockLength);
|
||||||
strlcpy(mArgBlockStart, argv0, mArgBlockLength);
|
strlcpy(mArgBlockStart, argv0, mArgBlockLength);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -547,9 +547,7 @@ void android_os_Process_setArgV0(JNIEnv* env, jobject clazz, jstring name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!name8.isEmpty()) {
|
if (!name8.isEmpty()) {
|
||||||
const char* procName = name8.string();
|
AndroidRuntime::getRuntime()->setArgv0(name8.string(), true /* setProcName */);
|
||||||
pthread_setname_np(pthread_self(), procName);
|
|
||||||
AndroidRuntime::getRuntime()->setArgv0(procName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public:
|
|||||||
Tool,
|
Tool,
|
||||||
};
|
};
|
||||||
|
|
||||||
void setArgv0(const char* argv0);
|
void setArgv0(const char* argv0, bool setProcName = false);
|
||||||
void addOption(const char* optionString, void* extra_info = NULL);
|
void addOption(const char* optionString, void* extra_info = NULL);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user