]> granicus.if.org Git - php/commitdiff
Shutdown cleanly (prevents Kaffe from trapping on exit)
authorSam Ruby <rubys@php.net>
Fri, 28 Jan 2000 00:32:28 +0000 (00:32 +0000)
committerSam Ruby <rubys@php.net>
Fri, 28 Jan 2000 00:32:28 +0000 (00:32 +0000)
ext/java/java.c
ext/rpc/java/java.c

index 238b9930b23be6759e43d45efa36b22dbf05f683..d14fc4d1c5633d21bc98e4492cef4ad4d6c677b4 100644 (file)
@@ -101,12 +101,15 @@ PHP_INI_END()
  */
 void jvm_destroy() {
   if (php_reflect) (*jenv)->DeleteGlobalRef(jenv, php_reflect);
-  if (jvm) (*jvm)->DestroyJavaVM(jvm);
+  if (jvm) {
+    (*jvm)->DetachCurrentThread(jvm);
+    (*jvm)->DestroyJavaVM(jvm);
+    jvm = 0;
+  }
 #if !(WIN32||WINNT)
   if (javadl) dlclose(javadl);
 #endif
   php_reflect = 0;
-  jvm = 0;
   jenv = 0;
 }
 
index 238b9930b23be6759e43d45efa36b22dbf05f683..d14fc4d1c5633d21bc98e4492cef4ad4d6c677b4 100644 (file)
@@ -101,12 +101,15 @@ PHP_INI_END()
  */
 void jvm_destroy() {
   if (php_reflect) (*jenv)->DeleteGlobalRef(jenv, php_reflect);
-  if (jvm) (*jvm)->DestroyJavaVM(jvm);
+  if (jvm) {
+    (*jvm)->DetachCurrentThread(jvm);
+    (*jvm)->DestroyJavaVM(jvm);
+    jvm = 0;
+  }
 #if !(WIN32||WINNT)
   if (javadl) dlclose(javadl);
 #endif
   php_reflect = 0;
-  jvm = 0;
   jenv = 0;
 }