diff options
author | Brad Fitzpatrick <bradfitz@android.com> | 2010-12-14 10:44:03 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-12-14 10:44:03 -0800 |
commit | 8f367f9c3b7100de7cf4dcbda69b85fc3b7767be (patch) | |
tree | 692b5a8235d4b3263618e8f40bddd750a5cf8116 /vm | |
parent | a118989d1b33e1513f08863e58308e7e3a68a18a (diff) | |
parent | cf7b2e60ee14f4634c41a1765a919286271739d8 (diff) | |
download | android_dalvik-8f367f9c3b7100de7cf4dcbda69b85fc3b7767be.tar.gz android_dalvik-8f367f9c3b7100de7cf4dcbda69b85fc3b7767be.tar.bz2 android_dalvik-8f367f9c3b7100de7cf4dcbda69b85fc3b7767be.zip |
Merge "resolved conflicts for merge of 3b55675a to dalvik-dev" into dalvik-dev
Diffstat (limited to 'vm')
-rw-r--r-- | vm/Globals.h | 1 | ||||
-rw-r--r-- | vm/Jni.c | 2 | ||||
-rw-r--r-- | vm/Sync.c | 15 |
3 files changed, 12 insertions, 6 deletions
diff --git a/vm/Globals.h b/vm/Globals.h index bea7c2cfe..25c485f57 100644 --- a/vm/Globals.h +++ b/vm/Globals.h @@ -121,6 +121,7 @@ struct DvmGlobals { int (*vfprintfHook)(FILE*, const char*, va_list); void (*exitHook)(int); void (*abortHook)(void); + bool (*isSensitiveThreadHook)(void); int jniGrefLimit; // 0 means no limit char* jniTrace; @@ -4292,6 +4292,8 @@ jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) gDvm.exitHook = (void (*)(int)) args->options[i].extraInfo; } else if (strcmp(optStr, "abort") == 0) { gDvm.abortHook = (void (*)(void))args->options[i].extraInfo; + } else if (strcmp(optStr, "sensitiveThread") == 0) { + gDvm.isSensitiveThreadHook = (_Bool (*)(void))args->options[i].extraInfo; } else if (strcmp(optStr, "-Xcheck:jni") == 0) { checkJni = true; } else if (strncmp(optStr, "-Xjniopts:", 10) == 0) { @@ -408,9 +408,12 @@ static void logContentionEvent(Thread *self, u4 waitMs, u4 samplePercent, len = strlen(procName); cp = logWriteString(cp, procName, len); - /* Emit the main thread status, 5 bytes. */ - bool isMainThread = (self->systemTid == getpid()); - cp = logWriteInt(cp, isMainThread); + /* Emit the sensitive thread ("main thread") status, 5 bytes. */ + bool isSensitive = false; + if (gDvm.isSensitiveThreadHook != NULL) { + isSensitive = gDvm.isSensitiveThreadHook(); + } + cp = logWriteInt(cp, isSensitive); /* Emit self thread name string, <= 37 bytes. */ selfName = dvmGetThreadName(self); @@ -431,10 +434,10 @@ static void logContentionEvent(Thread *self, u4 waitMs, u4 samplePercent, /* Emit the lock owner source code file name, <= 37 bytes. */ if (ownerFileName == NULL) { - ownerFileName = ""; + ownerFileName = ""; } else if (strcmp(fileName, ownerFileName) == 0) { - /* Common case, so save on log space. */ - ownerFileName = "-"; + /* Common case, so save on log space. */ + ownerFileName = "-"; } cp = logWriteString(cp, ownerFileName, strlen(ownerFileName)); |