< prev index next >

src/hotspot/os/windows/os_windows.cpp

Print this page
rev 52189 : [mq]: tinit

*** 418,427 **** --- 418,430 ---- LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo); // Thread start routine for all newly created threads static unsigned __stdcall thread_native_entry(Thread* thread) { + + thread->record_stack_base_and_size(); + // Try to randomize the cache line index of hot stack frames. // This helps when threads of the same stack traces evict each other's // cache lines. The threads can be either from the same JVM instance, or // from different JVM instances. The benefit is especially true for // processors with hyperthreading technology.
*** 445,468 **** int res = 30115; // non-java thread if (thread->is_Java_thread()) { res = 20115; // java thread } - log_info(os, thread)("Thread is alive (tid: " UINTX_FORMAT ").", os::current_thread_id()); - // Install a win32 structured exception handler around every thread created // by VM, so VM can generate error dump when an exception occurred in non- // Java thread (e.g. VM thread). __try { ! thread->run(); } __except(topLevelExceptionFilter( (_EXCEPTION_POINTERS*)_exception_info())) { // Nothing to do. } - log_info(os, thread)("Thread finished (tid: " UINTX_FORMAT ").", os::current_thread_id()); - // One less thread is executing // When the VMThread gets here, the main thread may have already exited // which frees the CodeHeap containing the Atomic::add code if (thread != VMThread::vm_thread() && VMThread::vm_thread() != NULL) { Atomic::dec(&os::win32::_os_thread_count); --- 448,467 ---- int res = 30115; // non-java thread if (thread->is_Java_thread()) { res = 20115; // java thread } // Install a win32 structured exception handler around every thread created // by VM, so VM can generate error dump when an exception occurred in non- // Java thread (e.g. VM thread). __try { ! thread->call_run(); } __except(topLevelExceptionFilter( (_EXCEPTION_POINTERS*)_exception_info())) { // Nothing to do. } // One less thread is executing // When the VMThread gets here, the main thread may have already exited // which frees the CodeHeap containing the Atomic::add code if (thread != VMThread::vm_thread() && VMThread::vm_thread() != NULL) { Atomic::dec(&os::win32::_os_thread_count);
< prev index next >