src/hotspot/share/runtime/thread.hpp
changeset 50058 f7e564cacfbc
parent 49982 9042ffe5b7fe
child 50113 caf115bb98ad
equal deleted inserted replaced
50057:f945444fabc3 50058:f7e564cacfbc
  2102   // force_daemon is a concession to JNI, where we may need to add a
  2102   // force_daemon is a concession to JNI, where we may need to add a
  2103   // thread to the thread list before allocating its thread object
  2103   // thread to the thread list before allocating its thread object
  2104   static void add(JavaThread* p, bool force_daemon = false);
  2104   static void add(JavaThread* p, bool force_daemon = false);
  2105   static void remove(JavaThread* p);
  2105   static void remove(JavaThread* p);
  2106   static void non_java_threads_do(ThreadClosure* tc);
  2106   static void non_java_threads_do(ThreadClosure* tc);
       
  2107   static void java_threads_do(ThreadClosure* tc);
       
  2108   static void java_threads_and_vm_thread_do(ThreadClosure* tc);
  2107   static void threads_do(ThreadClosure* tc);
  2109   static void threads_do(ThreadClosure* tc);
  2108   static void possibly_parallel_threads_do(bool is_par, ThreadClosure* tc);
  2110   static void possibly_parallel_threads_do(bool is_par, ThreadClosure* tc);
  2109 
  2111 
  2110   // Initializes the vm and creates the vm thread
  2112   // Initializes the vm and creates the vm thread
  2111   static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
  2113   static jint create_vm(JavaVMInitArgs* args, bool* canTryAgain);
  2140   // Apply "f->do_oop" to all root oops in all threads.
  2142   // Apply "f->do_oop" to all root oops in all threads.
  2141   // This version may only be called by sequential code.
  2143   // This version may only be called by sequential code.
  2142   static void oops_do(OopClosure* f, CodeBlobClosure* cf);
  2144   static void oops_do(OopClosure* f, CodeBlobClosure* cf);
  2143   // This version may be called by sequential or parallel code.
  2145   // This version may be called by sequential or parallel code.
  2144   static void possibly_parallel_oops_do(bool is_par, OopClosure* f, CodeBlobClosure* cf);
  2146   static void possibly_parallel_oops_do(bool is_par, OopClosure* f, CodeBlobClosure* cf);
  2145   // This creates a list of GCTasks, one per thread.
       
  2146   static void create_thread_roots_tasks(GCTaskQueue* q);
       
  2147   // This creates a list of GCTasks, one per thread, for marking objects.
       
  2148   static void create_thread_roots_marking_tasks(GCTaskQueue* q);
       
  2149 
  2147 
  2150   // Apply "f->do_oop" to roots in all threads that
  2148   // Apply "f->do_oop" to roots in all threads that
  2151   // are part of compiled frames
  2149   // are part of compiled frames
  2152   static void compiled_frame_oops_do(OopClosure* f, CodeBlobClosure* cf);
  2150   static void compiled_frame_oops_do(OopClosure* f, CodeBlobClosure* cf);
  2153 
  2151