diff options
author | Raghu Gandham <raghu@mips.com> | 2012-05-02 14:27:16 -0700 |
---|---|---|
committer | Raghu Gandham <raghu@mips.com> | 2012-05-02 14:27:16 -0700 |
commit | a8b91c52fd8a90b784835dfe1f8898035266c4dd (patch) | |
tree | 8a9bb58ee3b78c10cf88a3bac21b7f96d75cd1f7 /vm/Thread.cpp | |
parent | a14639df65cc0aefafcddda5aae8b591204e45f9 (diff) | |
download | android_dalvik-a8b91c52fd8a90b784835dfe1f8898035266c4dd.tar.gz android_dalvik-a8b91c52fd8a90b784835dfe1f8898035266c4dd.tar.bz2 android_dalvik-a8b91c52fd8a90b784835dfe1f8898035266c4dd.zip |
[MIPS] Dalvik fast interpreter support and JIT implementation
Change-Id: I9bb4f6875b7061d3ffaee73f204026cb8ba3ed39
Signed-off-by: Raghu Gandham <raghu@mips.com>
Signed-off-by: Chris Dearman <chris@mips.com>
Signed-off-by: Douglas Leung <douglas@mips.com>
Signed-off-by: Don Padgett <don@mips.com>
Diffstat (limited to 'vm/Thread.cpp')
-rw-r--r-- | vm/Thread.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/vm/Thread.cpp b/vm/Thread.cpp index 8e879e084..28182d6f2 100644 --- a/vm/Thread.cpp +++ b/vm/Thread.cpp @@ -3434,15 +3434,26 @@ void dvmNukeThread(Thread* thread) * The target thread can continue to execute between the two signals. * (The first just causes debuggerd to attach to it.) */ - LOGD("threadid=%d: sending two SIGSTKFLTs to threadid=%d (tid=%d) to" + +#ifdef SIGSTKFLT +#define SIG SIGSTKFLT +#define SIGNAME "SIGSTKFLT" +#elif defined(SIGEMT) +#define SIG SIGEMT +#define SIGNAME "SIGEMT" +#else +#error No signal available for dvmNukeThread +#endif + + LOGD("threadid=%d: sending two " SIGNAME "s to threadid=%d (tid=%d) to" " cause debuggerd dump", dvmThreadSelf()->threadId, thread->threadId, thread->systemTid); - killResult = pthread_kill(thread->handle, SIGSTKFLT); + killResult = pthread_kill(thread->handle, SIG); if (killResult != 0) { LOGD("NOTE: pthread_kill #1 failed: %s", strerror(killResult)); } usleep(2 * 1000 * 1000); // TODO: timed-wait until debuggerd attaches - killResult = pthread_kill(thread->handle, SIGSTKFLT); + killResult = pthread_kill(thread->handle, SIG); if (killResult != 0) { LOGD("NOTE: pthread_kill #2 failed: %s", strerror(killResult)); } |