summaryrefslogtreecommitdiff
path: root/ext/java/java.c
diff options
context:
space:
mode:
authorSam Ruby <rubys@php.net>2000-01-28 00:32:28 +0000
committerSam Ruby <rubys@php.net>2000-01-28 00:32:28 +0000
commit302ccb0d97d80e1b3f5483975f1af11ec1faaa26 (patch)
treed79ed58daf06a4b2bb557332b66320f7c2cdd13b /ext/java/java.c
parentb87e48802e40103accf45962d32d7514f61017d3 (diff)
downloadphp-git-302ccb0d97d80e1b3f5483975f1af11ec1faaa26.tar.gz
Shutdown cleanly (prevents Kaffe from trapping on exit)
Diffstat (limited to 'ext/java/java.c')
-rw-r--r--ext/java/java.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/java/java.c b/ext/java/java.c
index 238b9930b2..d14fc4d1c5 100644
--- a/ext/java/java.c
+++ b/ext/java/java.c
@@ -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;
}