< prev index next >

src/hotspot/os/windows/os_windows.cpp

Print this page
rev 47862 : imported patch 10.07.open.rebase_20171110.dcubed

*** 3488,3500 **** // Hint to the underlying OS that a task switch would not be good. // Void return because it's a hint and can fail. void os::hint_no_preempt() {} void os::interrupt(Thread* thread) { ! assert(!thread->is_Java_thread() || Thread::current() == thread || ! Threads_lock->owned_by_self(), ! "possibility of dangling Thread pointer"); OSThread* osthread = thread->osthread(); osthread->set_interrupted(true); // More than one thread can get here with the same value of osthread, // resulting in multiple notifications. We do, however, want the store --- 3488,3498 ---- // Hint to the underlying OS that a task switch would not be good. // Void return because it's a hint and can fail. void os::hint_no_preempt() {} void os::interrupt(Thread* thread) { ! debug_only(Thread::check_for_dangling_thread_pointer(thread);) OSThread* osthread = thread->osthread(); osthread->set_interrupted(true); // More than one thread can get here with the same value of osthread, // resulting in multiple notifications. We do, however, want the store
*** 3511,3522 **** if (ev != NULL) ev->unpark(); } bool os::is_interrupted(Thread* thread, bool clear_interrupted) { ! assert(!thread->is_Java_thread() || Thread::current() == thread || Threads_lock->owned_by_self(), ! "possibility of dangling Thread pointer"); OSThread* osthread = thread->osthread(); // There is no synchronization between the setting of the interrupt // and it being cleared here. It is critical - see 6535709 - that // we only clear the interrupt state, and reset the interrupt event, --- 3509,3519 ---- if (ev != NULL) ev->unpark(); } bool os::is_interrupted(Thread* thread, bool clear_interrupted) { ! debug_only(Thread::check_for_dangling_thread_pointer(thread);) OSThread* osthread = thread->osthread(); // There is no synchronization between the setting of the interrupt // and it being cleared here. It is critical - see 6535709 - that // we only clear the interrupt state, and reset the interrupt event,
< prev index next >