459 static int current_process_id();
460 static int sleep(Thread* thread, jlong ms, bool interruptable);
461 // Short standalone OS sleep suitable for slow path spin loop.
462 // Ignores Thread.interrupt() (so keep it short).
463 // ms = 0, will sleep for the least amount of time allowed by the OS.
464 static void naked_short_sleep(jlong ms);
465 static void infinite_sleep(); // never returns, use with CAUTION
466 static void naked_yield () ;
467 static OSReturn set_priority(Thread* thread, ThreadPriority priority);
468 static OSReturn get_priority(const Thread* const thread, ThreadPriority& priority);
469
470 static void interrupt(Thread* thread);
471 static bool is_interrupted(Thread* thread, bool clear_interrupted);
472
473 static int pd_self_suspend_thread(Thread* thread);
474
475 static ExtendedPC fetch_frame_from_context(const void* ucVoid, intptr_t** sp, intptr_t** fp);
476 static frame fetch_frame_from_context(const void* ucVoid);
477 static frame fetch_frame_from_ucontext(Thread* thread, void* ucVoid);
478
479 static ExtendedPC get_thread_pc(Thread *thread);
480 static void breakpoint();
481 static bool start_debugging(char *buf, int buflen);
482
483 static address current_stack_pointer();
484 static address current_stack_base();
485 static size_t current_stack_size();
486
487 static void verify_stack_alignment() PRODUCT_RETURN;
488
489 static bool message_box(const char* title, const char* message);
490 static char* do_you_want_to_debug(const char* message);
491
492 // run cmd in a separate process and return its exit code; or -1 on failures
493 static int fork_and_exec(char *cmd);
494
495 // Call ::exit() on all platforms but Windows
496 static void exit(int num);
497
498 // Terminate the VM, but don't exit the process
499 static void shutdown();
|
459 static int current_process_id();
460 static int sleep(Thread* thread, jlong ms, bool interruptable);
461 // Short standalone OS sleep suitable for slow path spin loop.
462 // Ignores Thread.interrupt() (so keep it short).
463 // ms = 0, will sleep for the least amount of time allowed by the OS.
464 static void naked_short_sleep(jlong ms);
465 static void infinite_sleep(); // never returns, use with CAUTION
466 static void naked_yield () ;
467 static OSReturn set_priority(Thread* thread, ThreadPriority priority);
468 static OSReturn get_priority(const Thread* const thread, ThreadPriority& priority);
469
470 static void interrupt(Thread* thread);
471 static bool is_interrupted(Thread* thread, bool clear_interrupted);
472
473 static int pd_self_suspend_thread(Thread* thread);
474
475 static ExtendedPC fetch_frame_from_context(const void* ucVoid, intptr_t** sp, intptr_t** fp);
476 static frame fetch_frame_from_context(const void* ucVoid);
477 static frame fetch_frame_from_ucontext(Thread* thread, void* ucVoid);
478
479 static void breakpoint();
480 static bool start_debugging(char *buf, int buflen);
481
482 static address current_stack_pointer();
483 static address current_stack_base();
484 static size_t current_stack_size();
485
486 static void verify_stack_alignment() PRODUCT_RETURN;
487
488 static bool message_box(const char* title, const char* message);
489 static char* do_you_want_to_debug(const char* message);
490
491 // run cmd in a separate process and return its exit code; or -1 on failures
492 static int fork_and_exec(char *cmd);
493
494 // Call ::exit() on all platforms but Windows
495 static void exit(int num);
496
497 // Terminate the VM, but don't exit the process
498 static void shutdown();
|