3509 while (true) { // sleep forever ... 3510 Sleep(100000); // ... 100 seconds at a time 3511 } 3512 } 3513 3514 typedef BOOL (WINAPI * STTSignature)(void) ; 3515 3516 os::YieldResult os::NakedYield() { 3517 // Use either SwitchToThread() or Sleep(0) 3518 // Consider passing back the return value from SwitchToThread(). 3519 if (os::Kernel32Dll::SwitchToThreadAvailable()) { 3520 return SwitchToThread() ? os::YIELD_SWITCHED : os::YIELD_NONEREADY ; 3521 } else { 3522 Sleep(0); 3523 } 3524 return os::YIELD_UNKNOWN ; 3525 } 3526 3527 void os::yield() { os::NakedYield(); } 3528 3529 void os::yield_all() { 3530 // Yields to all threads, including threads with lower priorities 3531 Sleep(1); 3532 } 3533 3534 // Win32 only gives you access to seven real priorities at a time, 3535 // so we compress Java's ten down to seven. It would be better 3536 // if we dynamically adjusted relative priorities. 3537 3538 int os::java_to_os_priority[CriticalPriority + 1] = { 3539 THREAD_PRIORITY_IDLE, // 0 Entry should never be used 3540 THREAD_PRIORITY_LOWEST, // 1 MinPriority 3541 THREAD_PRIORITY_LOWEST, // 2 3542 THREAD_PRIORITY_BELOW_NORMAL, // 3 3543 THREAD_PRIORITY_BELOW_NORMAL, // 4 3544 THREAD_PRIORITY_NORMAL, // 5 NormPriority 3545 THREAD_PRIORITY_NORMAL, // 6 3546 THREAD_PRIORITY_ABOVE_NORMAL, // 7 3547 THREAD_PRIORITY_ABOVE_NORMAL, // 8 3548 THREAD_PRIORITY_HIGHEST, // 9 NearMaxPriority 3549 THREAD_PRIORITY_HIGHEST, // 10 MaxPriority 3550 THREAD_PRIORITY_HIGHEST // 11 CriticalPriority 3551 }; 3552 3553 int prio_policy1[CriticalPriority + 1] = { | 3509 while (true) { // sleep forever ... 3510 Sleep(100000); // ... 100 seconds at a time 3511 } 3512 } 3513 3514 typedef BOOL (WINAPI * STTSignature)(void) ; 3515 3516 os::YieldResult os::NakedYield() { 3517 // Use either SwitchToThread() or Sleep(0) 3518 // Consider passing back the return value from SwitchToThread(). 3519 if (os::Kernel32Dll::SwitchToThreadAvailable()) { 3520 return SwitchToThread() ? os::YIELD_SWITCHED : os::YIELD_NONEREADY ; 3521 } else { 3522 Sleep(0); 3523 } 3524 return os::YIELD_UNKNOWN ; 3525 } 3526 3527 void os::yield() { os::NakedYield(); } 3528 3529 // Win32 only gives you access to seven real priorities at a time, 3530 // so we compress Java's ten down to seven. It would be better 3531 // if we dynamically adjusted relative priorities. 3532 3533 int os::java_to_os_priority[CriticalPriority + 1] = { 3534 THREAD_PRIORITY_IDLE, // 0 Entry should never be used 3535 THREAD_PRIORITY_LOWEST, // 1 MinPriority 3536 THREAD_PRIORITY_LOWEST, // 2 3537 THREAD_PRIORITY_BELOW_NORMAL, // 3 3538 THREAD_PRIORITY_BELOW_NORMAL, // 4 3539 THREAD_PRIORITY_NORMAL, // 5 NormPriority 3540 THREAD_PRIORITY_NORMAL, // 6 3541 THREAD_PRIORITY_ABOVE_NORMAL, // 7 3542 THREAD_PRIORITY_ABOVE_NORMAL, // 8 3543 THREAD_PRIORITY_HIGHEST, // 9 NearMaxPriority 3544 THREAD_PRIORITY_HIGHEST, // 10 MaxPriority 3545 THREAD_PRIORITY_HIGHEST // 11 CriticalPriority 3546 }; 3547 3548 int prio_policy1[CriticalPriority + 1] = { |