2097 friend class VMStructs;
2098 private:
2099 static JavaThread* _thread_list;
2100 static int _number_of_threads;
2101 static int _number_of_non_daemon_threads;
2102 static int _return_code;
2103 static int _thread_claim_parity;
2104 #ifdef ASSERT
2105 static bool _vm_complete;
2106 #endif
2107
2108 static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
2109 static void initialize_jsr292_core_classes(TRAPS);
2110
2111 public:
2112 // Thread management
2113 // force_daemon is a concession to JNI, where we may need to add a
2114 // thread to the thread list before allocating its thread object
2115 static void add(JavaThread* p, bool force_daemon = false);
2116 static void remove(JavaThread* p);
2117 static void threads_do(ThreadClosure* tc);
2118 static void possibly_parallel_threads_do(bool is_par, ThreadClosure* tc);
2119
2120 // Initializes the vm and creates the vm thread
2121 static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
2122 static void convert_vm_init_libraries_to_agents();
2123 static void create_vm_init_libraries();
2124 static void create_vm_init_agents();
2125 static void shutdown_vm_agents();
2126 static bool destroy_vm();
2127 // Supported VM versions via JNI
2128 // Includes JNI_VERSION_1_1
2129 static jboolean is_supported_jni_version_including_1_1(jint version);
2130 // Does not include JNI_VERSION_1_1
2131 static jboolean is_supported_jni_version(jint version);
2132
2133 // The "thread claim parity" provides a way for threads to be claimed
2134 // by parallel worker tasks.
2135 //
2136 // Each thread contains a a "parity" field. A task will claim the
|
2097 friend class VMStructs;
2098 private:
2099 static JavaThread* _thread_list;
2100 static int _number_of_threads;
2101 static int _number_of_non_daemon_threads;
2102 static int _return_code;
2103 static int _thread_claim_parity;
2104 #ifdef ASSERT
2105 static bool _vm_complete;
2106 #endif
2107
2108 static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
2109 static void initialize_jsr292_core_classes(TRAPS);
2110
2111 public:
2112 // Thread management
2113 // force_daemon is a concession to JNI, where we may need to add a
2114 // thread to the thread list before allocating its thread object
2115 static void add(JavaThread* p, bool force_daemon = false);
2116 static void remove(JavaThread* p);
2117 static void non_java_threads_do(ThreadClosure* tc);
2118 static void threads_do(ThreadClosure* tc);
2119 static void possibly_parallel_threads_do(bool is_par, ThreadClosure* tc);
2120
2121 // Initializes the vm and creates the vm thread
2122 static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
2123 static void convert_vm_init_libraries_to_agents();
2124 static void create_vm_init_libraries();
2125 static void create_vm_init_agents();
2126 static void shutdown_vm_agents();
2127 static bool destroy_vm();
2128 // Supported VM versions via JNI
2129 // Includes JNI_VERSION_1_1
2130 static jboolean is_supported_jni_version_including_1_1(jint version);
2131 // Does not include JNI_VERSION_1_1
2132 static jboolean is_supported_jni_version(jint version);
2133
2134 // The "thread claim parity" provides a way for threads to be claimed
2135 // by parallel worker tasks.
2136 //
2137 // Each thread contains a a "parity" field. A task will claim the
|