2051 static JavaThread* _thread_list;
2052 static int _number_of_threads;
2053 static int _number_of_non_daemon_threads;
2054 static int _return_code;
2055 static int _thread_claim_parity;
2056 #ifdef ASSERT
2057 static bool _vm_complete;
2058 #endif
2059
2060 static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
2061 static void initialize_jsr292_core_classes(TRAPS);
2062 public:
2063 // Thread management
2064 // force_daemon is a concession to JNI, where we may need to add a
2065 // thread to the thread list before allocating its thread object
2066 static void add(JavaThread* p, bool force_daemon = false);
2067 static void remove(JavaThread* p);
2068 static bool includes(JavaThread* p);
2069 static JavaThread* first() { return _thread_list; }
2070 static void threads_do(ThreadClosure* tc);
2071
2072 // Initializes the vm and creates the vm thread
2073 static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
2074 static void convert_vm_init_libraries_to_agents();
2075 static void create_vm_init_libraries();
2076 static void create_vm_init_agents();
2077 static void shutdown_vm_agents();
2078 static bool destroy_vm();
2079 // Supported VM versions via JNI
2080 // Includes JNI_VERSION_1_1
2081 static jboolean is_supported_jni_version_including_1_1(jint version);
2082 // Does not include JNI_VERSION_1_1
2083 static jboolean is_supported_jni_version(jint version);
2084
2085 // The "thread claim parity" provides a way for threads to be claimed
2086 // by parallel worker tasks.
2087 //
2088 // Each thread contains a a "parity" field. A task will claim the
2089 // thread only if its parity field is the same as the global parity,
2090 // which is updated by calling change_thread_claim_parity().
|
2051 static JavaThread* _thread_list;
2052 static int _number_of_threads;
2053 static int _number_of_non_daemon_threads;
2054 static int _return_code;
2055 static int _thread_claim_parity;
2056 #ifdef ASSERT
2057 static bool _vm_complete;
2058 #endif
2059
2060 static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
2061 static void initialize_jsr292_core_classes(TRAPS);
2062 public:
2063 // Thread management
2064 // force_daemon is a concession to JNI, where we may need to add a
2065 // thread to the thread list before allocating its thread object
2066 static void add(JavaThread* p, bool force_daemon = false);
2067 static void remove(JavaThread* p);
2068 static bool includes(JavaThread* p);
2069 static JavaThread* first() { return _thread_list; }
2070 static void threads_do(ThreadClosure* tc);
2071 static void parallel_java_threads_do(ThreadClosure* tc);
2072
2073 // Initializes the vm and creates the vm thread
2074 static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
2075 static void convert_vm_init_libraries_to_agents();
2076 static void create_vm_init_libraries();
2077 static void create_vm_init_agents();
2078 static void shutdown_vm_agents();
2079 static bool destroy_vm();
2080 // Supported VM versions via JNI
2081 // Includes JNI_VERSION_1_1
2082 static jboolean is_supported_jni_version_including_1_1(jint version);
2083 // Does not include JNI_VERSION_1_1
2084 static jboolean is_supported_jni_version(jint version);
2085
2086 // The "thread claim parity" provides a way for threads to be claimed
2087 // by parallel worker tasks.
2088 //
2089 // Each thread contains a a "parity" field. A task will claim the
2090 // thread only if its parity field is the same as the global parity,
2091 // which is updated by calling change_thread_claim_parity().
|