< prev index next >

src/hotspot/share/runtime/thread.hpp

Print this page
rev 49501 : 8200374: Add ThreadsSMRSupport::verify_hazard_pointer_scanned() to verify threads_do().


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


< prev index next >