2079 static JavaThread* _thread_list;
2080 static int _number_of_threads;
2081 static int _number_of_non_daemon_threads;
2082 static int _return_code;
2083 static int _thread_claim_parity;
2084 #ifdef ASSERT
2085 static bool _vm_complete;
2086 #endif
2087
2088 static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
2089 static void initialize_jsr292_core_classes(TRAPS);
2090 public:
2091 // Thread management
2092 // force_daemon is a concession to JNI, where we may need to add a
2093 // thread to the thread list before allocating its thread object
2094 static void add(JavaThread* p, bool force_daemon = false);
2095 static void remove(JavaThread* p);
2096 static bool includes(JavaThread* p);
2097 static JavaThread* first() { return _thread_list; }
2098 static void threads_do(ThreadClosure* tc);
2099
2100 // Initializes the vm and creates the vm thread
2101 static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
2102 static void convert_vm_init_libraries_to_agents();
2103 static void create_vm_init_libraries();
2104 static void create_vm_init_agents();
2105 static void shutdown_vm_agents();
2106 static bool destroy_vm();
2107 // Supported VM versions via JNI
2108 // Includes JNI_VERSION_1_1
2109 static jboolean is_supported_jni_version_including_1_1(jint version);
2110 // Does not include JNI_VERSION_1_1
2111 static jboolean is_supported_jni_version(jint version);
2112
2113 // The "thread claim parity" provides a way for threads to be claimed
2114 // by parallel worker tasks.
2115 //
2116 // Each thread contains a a "parity" field. A task will claim the
2117 // thread only if its parity field is the same as the global parity,
2118 // which is updated by calling change_thread_claim_parity().
|
2079 static JavaThread* _thread_list;
2080 static int _number_of_threads;
2081 static int _number_of_non_daemon_threads;
2082 static int _return_code;
2083 static int _thread_claim_parity;
2084 #ifdef ASSERT
2085 static bool _vm_complete;
2086 #endif
2087
2088 static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
2089 static void initialize_jsr292_core_classes(TRAPS);
2090 public:
2091 // Thread management
2092 // force_daemon is a concession to JNI, where we may need to add a
2093 // thread to the thread list before allocating its thread object
2094 static void add(JavaThread* p, bool force_daemon = false);
2095 static void remove(JavaThread* p);
2096 static bool includes(JavaThread* p);
2097 static JavaThread* first() { return _thread_list; }
2098 static void threads_do(ThreadClosure* tc);
2099 static void parallel_threads_do(ThreadClosure* tc);
2100
2101 // Initializes the vm and creates the vm thread
2102 static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
2103 static void convert_vm_init_libraries_to_agents();
2104 static void create_vm_init_libraries();
2105 static void create_vm_init_agents();
2106 static void shutdown_vm_agents();
2107 static bool destroy_vm();
2108 // Supported VM versions via JNI
2109 // Includes JNI_VERSION_1_1
2110 static jboolean is_supported_jni_version_including_1_1(jint version);
2111 // Does not include JNI_VERSION_1_1
2112 static jboolean is_supported_jni_version(jint version);
2113
2114 // The "thread claim parity" provides a way for threads to be claimed
2115 // by parallel worker tasks.
2116 //
2117 // Each thread contains a a "parity" field. A task will claim the
2118 // thread only if its parity field is the same as the global parity,
2119 // which is updated by calling change_thread_claim_parity().
|