diff --git a/src/jnienv.cpp b/src/jnienv.cpp index 6a31950abd..391938180a 100644 --- a/src/jnienv.cpp +++ b/src/jnienv.cpp @@ -41,6 +41,19 @@ AttachCurrentThread(Machine* m, Thread** t, void*) return 0; } +jint JNICALL +AttachCurrentThreadAsDaemon(Machine* m, Thread** t, void* parameters) +{ + *t = static_cast(m->localThread->get()); + if (*t == 0) { + AttachCurrentThread(m, t, parameters); + + ENTER(*t, Thread::ActiveState); + setDaemon(*t, (*t)->javaThread, true); + } + return 0; +} + jint JNICALL DetachCurrentThread(Machine* m) { @@ -1902,6 +1915,7 @@ populateJNITables(JavaVMVTable* vmTable, JNIEnvVTable* envTable) vmTable->DestroyJavaVM = DestroyJavaVM; vmTable->AttachCurrentThread = AttachCurrentThread; + vmTable->AttachCurrentThreadAsDaemon = AttachCurrentThreadAsDaemon; vmTable->DetachCurrentThread = DetachCurrentThread; vmTable->GetEnv = GetEnv;