You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/01/13 02:27:32 UTC

svn commit: r495813 - in /harmony/enhanced/drlvm/trunk/vm/vmcore: include/ src/init/ src/kernel_classes/javasrc/java/lang/ src/kernel_classes/native/

Author: gshimansky
Date: Fri Jan 12 17:27:31 2007
New Revision: 495813

URL: http://svn.apache.org/viewvc?view=rev&rev=495813
Log:
Applied HARMONY-2988 [DRLVM] Finalization native turn off flag support.

build tests passed on Ubuntu6 x86, Windows XP x86 and SuSE9 x86_x64


Modified:
    harmony/enhanced/drlvm/trunk/vm/vmcore/include/finalize.h
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/finalize.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/FinalizerThread.java
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.h

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/finalize.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/finalize.h?view=diff&rev=495813&r1=495812&r2=495813
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/finalize.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/finalize.h Fri Jan 12 17:27:31 2007
@@ -41,6 +41,7 @@
 void vm_run_pending_finalizers();
 int vm_do_finalization(int quantity);
 int vm_get_finalizable_objects_quantity();
+bool vm_finalization_is_enabled();
 
 #ifndef USE_GC_STATIC
 VMEXPORT

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/finalize.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/finalize.cpp?view=diff&rev=495813&r1=495812&r2=495813
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/finalize.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/finalize.cpp Fri Jan 12 17:27:31 2007
@@ -526,7 +526,12 @@
 {
     return objects_to_finalize.getLength();
 }
-// -- Code to deal with Reference Queues that need to be notified.
+
+/* returns true if finalization system is turned on, and false otherwise */
+bool vm_finalization_is_enabled()
+{
+    return VM_Global_State::loader_env->finalizer_thread != NULL;
+}// -- Code to deal with Reference Queues that need to be notified.
 
 static References_To_Enqueue references_to_enqueue;
 

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/FinalizerThread.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/FinalizerThread.java?view=diff&rev=495813&r1=495812&r2=495813
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/FinalizerThread.java (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/javasrc/java/lang/FinalizerThread.java Fri Jan 12 17:27:31 2007
@@ -78,10 +78,9 @@
 
         String p = System.getProperty("vm.finalize");
         processorsQuantity = getProcessorsQuantity();
-        
-        // -Dvm.finalize=0 disables the finalizer thread
-        if ("0".equalsIgnoreCase(p) || "off".equalsIgnoreCase(p)
-                || "no".equalsIgnoreCase(p) || "false".equalsIgnoreCase(p)) {
+
+        // -XDvm.finalize=0 disables the finalizer thread
+        if (! isNativePartEnabled()) {
             warn("finalizer thread have not been created");
         } else {
             (new FinalizerThread(true)).start();
@@ -198,7 +197,13 @@
     private static native int doFinalization(int quantity);
     
     private static native void fillFinalizationQueueOnExit();
-    
+
+    /**
+     * Returns true if native part of finalization system is
+     * turned on, and false otherwise.
+     */
+    private static native boolean isNativePartEnabled();
+
     /**
      * Returns true if current thread is finalizer thread
      */

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.cpp?view=diff&rev=495813&r1=495812&r2=495813
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.cpp Fri Jan 12 17:27:31 2007
@@ -130,4 +130,14 @@
 {
     finalizer_shutdown(value);
 }
+/*
+ * Class:     java_lang_FinalizerThread
+ * Method:    isNativePartEnabled
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_java_lang_FinalizerThread_isNativePartEnabled
+  (JNIEnv *, jclass)
+{
+    return (jboolean) vm_finalization_is_enabled();
+}
 /* END: These three methods are added for NATIVE FINALIZER THREAD */

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.h?view=diff&rev=495813&r1=495812&r2=495813
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.h Fri Jan 12 17:27:31 2007
@@ -102,6 +102,11 @@
 /* END: These three methods are added for NATIVE FINALIZER THREAD */
 
 
+/*
+ * Method: java_lang_FinalizerThread.isNativePartEnabled()Z
+ */
+JNIEXPORT jboolean JNICALL
+Java_java_lang_FinalizerThread_isNativePartEnabled(JNIEnv *, jclass);
 #ifdef __cplusplus
 }
 #endif