488 // that loads/creates the JVM via JNI_CreateJavaVM.
489 static bool create_main_thread(JavaThread* thread);
490
491 // The primordial thread is the initial process thread. The java
492 // launcher never uses the primordial thread as the main thread, but
493 // applications that host the JVM directly may do so. Some platforms
494 // need special-case handling of the primordial thread if it attaches
495 // to the VM.
496 static bool is_primordial_thread(void)
497 #if defined(_WINDOWS) || defined(BSD)
498 // No way to identify the primordial thread.
499 { return false; }
500 #else
501 ;
502 #endif
503
504 static bool create_attached_thread(JavaThread* thread);
505 static void pd_start_thread(Thread* thread);
506 static void start_thread(Thread* thread);
507
508 static void initialize_thread(Thread* thr);
509 static void free_thread(OSThread* osthread);
510
511 // thread id on Linux/64bit is 64bit, on Windows and Solaris, it's 32bit
512 static intx current_thread_id();
513 static int current_process_id();
514 static int sleep(Thread* thread, jlong ms, bool interruptable);
515 // Short standalone OS sleep suitable for slow path spin loop.
516 // Ignores Thread.interrupt() (so keep it short).
517 // ms = 0, will sleep for the least amount of time allowed by the OS.
518 static void naked_short_sleep(jlong ms);
519 static void infinite_sleep(); // never returns, use with CAUTION
520 static void naked_yield () ;
521 static OSReturn set_priority(Thread* thread, ThreadPriority priority);
522 static OSReturn get_priority(const Thread* const thread, ThreadPriority& priority);
523
524 static void interrupt(Thread* thread);
525 static bool is_interrupted(Thread* thread, bool clear_interrupted);
526
527 static int pd_self_suspend_thread(Thread* thread);
528
|
488 // that loads/creates the JVM via JNI_CreateJavaVM.
489 static bool create_main_thread(JavaThread* thread);
490
491 // The primordial thread is the initial process thread. The java
492 // launcher never uses the primordial thread as the main thread, but
493 // applications that host the JVM directly may do so. Some platforms
494 // need special-case handling of the primordial thread if it attaches
495 // to the VM.
496 static bool is_primordial_thread(void)
497 #if defined(_WINDOWS) || defined(BSD)
498 // No way to identify the primordial thread.
499 { return false; }
500 #else
501 ;
502 #endif
503
504 static bool create_attached_thread(JavaThread* thread);
505 static void pd_start_thread(Thread* thread);
506 static void start_thread(Thread* thread);
507
508 static void free_thread(OSThread* osthread);
509
510 // thread id on Linux/64bit is 64bit, on Windows and Solaris, it's 32bit
511 static intx current_thread_id();
512 static int current_process_id();
513 static int sleep(Thread* thread, jlong ms, bool interruptable);
514 // Short standalone OS sleep suitable for slow path spin loop.
515 // Ignores Thread.interrupt() (so keep it short).
516 // ms = 0, will sleep for the least amount of time allowed by the OS.
517 static void naked_short_sleep(jlong ms);
518 static void infinite_sleep(); // never returns, use with CAUTION
519 static void naked_yield () ;
520 static OSReturn set_priority(Thread* thread, ThreadPriority priority);
521 static OSReturn get_priority(const Thread* const thread, ThreadPriority& priority);
522
523 static void interrupt(Thread* thread);
524 static bool is_interrupted(Thread* thread, bool clear_interrupted);
525
526 static int pd_self_suspend_thread(Thread* thread);
527
|