Shutdown the compiler thread before the dvmSlayDaemons call is made.
diff --git a/vm/compiler/Compiler.c b/vm/compiler/Compiler.c
index 0b5c211..9473834 100644
--- a/vm/compiler/Compiler.c
+++ b/vm/compiler/Compiler.c
@@ -144,6 +144,8 @@
}
pthread_cond_signal(&gDvmJit.compilerQueueEmpty);
dvmUnlockMutex(&gDvmJit.compilerLock);
+
+ LOGD("Compiler thread shutting down\n");
return NULL;
}
@@ -242,6 +244,9 @@
pthread_cond_signal(&gDvmJit.compilerQueueActivity);
dvmUnlockMutex(&gDvmJit.compilerLock);
- pthread_join(gDvmJit.compilerHandle, &threadReturn);
+ if (pthread_join(gDvmJit.compilerHandle, &threadReturn) != 0)
+ LOGW("Compiler thread join failed\n");
+ else
+ LOGD("Compiler thread has shut down\n");
}
}