< prev index next >

src/share/vm/runtime/thread.hpp

Print this page




1879   static void create_vm_init_libraries();
1880   static void create_vm_init_agents();
1881   static void shutdown_vm_agents();
1882   static bool destroy_vm();
1883   // Supported VM versions via JNI
1884   // Includes JNI_VERSION_1_1
1885   static jboolean is_supported_jni_version_including_1_1(jint version);
1886   // Does not include JNI_VERSION_1_1
1887   static jboolean is_supported_jni_version(jint version);
1888 
1889   // The "thread claim parity" provides a way for threads to be claimed
1890   // by parallel worker tasks.
1891   //
1892   // Each thread contains a a "parity" field. A task will claim the
1893   // thread only if its parity field is the same as the global parity,
1894   // which is updated by calling change_thread_claim_parity().
1895   //
1896   // For this to work change_thread_claim_parity() needs to be called
1897   // exactly once in sequential code before starting parallel tasks
1898   // that should claim threads.
1899   //
1900   // If the client meats this spec, then "thread claim parity" will have
1901   // the following properties:
1902   //   a) to return a different value than was returned before the last
1903   //      call to change_strong_roots_parity, and
1904   //   c) to never return a distinguished value (zero) with which such
1905   //      task-claiming variables may be initialized, to indicate "never
1906   //      claimed".
1907   static int thread_claim_parity() { return _thread_claim_parity; }
1908   static void change_thread_claim_parity();
1909   static void assert_all_threads_claimed() PRODUCT_RETURN;
1910 
1911   // Apply "f->do_oop" to all root oops in all threads.
1912   // This version may only be called by sequential code.
1913   static void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1914   // This version may be called by sequential or parallel code.
1915   static void possibly_parallel_oops_do(bool is_par, OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1916   // This creates a list of GCTasks, one per thread.
1917   static void create_thread_roots_tasks(GCTaskQueue* q);
1918   // This creates a list of GCTasks, one per thread, for marking objects.
1919   static void create_thread_roots_marking_tasks(GCTaskQueue* q);
1920 
1921   // Apply "f->do_oop" to roots in all threads that
1922   // are part of compiled frames
1923   static void compiled_frame_oops_do(OopClosure* f, CodeBlobClosure* cf);
1924 
1925   static void convert_hcode_pointers();
1926   static void restore_hcode_pointers();




1879   static void create_vm_init_libraries();
1880   static void create_vm_init_agents();
1881   static void shutdown_vm_agents();
1882   static bool destroy_vm();
1883   // Supported VM versions via JNI
1884   // Includes JNI_VERSION_1_1
1885   static jboolean is_supported_jni_version_including_1_1(jint version);
1886   // Does not include JNI_VERSION_1_1
1887   static jboolean is_supported_jni_version(jint version);
1888 
1889   // The "thread claim parity" provides a way for threads to be claimed
1890   // by parallel worker tasks.
1891   //
1892   // Each thread contains a a "parity" field. A task will claim the
1893   // thread only if its parity field is the same as the global parity,
1894   // which is updated by calling change_thread_claim_parity().
1895   //
1896   // For this to work change_thread_claim_parity() needs to be called
1897   // exactly once in sequential code before starting parallel tasks
1898   // that should claim threads.








1899   static int thread_claim_parity() { return _thread_claim_parity; }
1900   static void change_thread_claim_parity();
1901   static void assert_all_threads_claimed() PRODUCT_RETURN;
1902 
1903   // Apply "f->do_oop" to all root oops in all threads.
1904   // This version may only be called by sequential code.
1905   static void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1906   // This version may be called by sequential or parallel code.
1907   static void possibly_parallel_oops_do(bool is_par, OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1908   // This creates a list of GCTasks, one per thread.
1909   static void create_thread_roots_tasks(GCTaskQueue* q);
1910   // This creates a list of GCTasks, one per thread, for marking objects.
1911   static void create_thread_roots_marking_tasks(GCTaskQueue* q);
1912 
1913   // Apply "f->do_oop" to roots in all threads that
1914   // are part of compiled frames
1915   static void compiled_frame_oops_do(OopClosure* f, CodeBlobClosure* cf);
1916 
1917   static void convert_hcode_pointers();
1918   static void restore_hcode_pointers();


< prev index next >