equal
deleted
inserted
replaced
2191 } |
2191 } |
2192 |
2192 |
2193 if (check_asyncs) { |
2193 if (check_asyncs) { |
2194 check_and_handle_async_exceptions(); |
2194 check_and_handle_async_exceptions(); |
2195 } |
2195 } |
|
2196 #if INCLUDE_TRACE |
|
2197 if (is_trace_suspend()) { |
|
2198 TRACE_SUSPEND_THREAD(this); |
|
2199 } |
|
2200 #endif |
2196 } |
2201 } |
2197 |
2202 |
2198 void JavaThread::send_thread_stop(oop java_throwable) { |
2203 void JavaThread::send_thread_stop(oop java_throwable) { |
2199 assert(Thread::current()->is_VM_thread(), "should be in the vm thread"); |
2204 assert(Thread::current()->is_VM_thread(), "should be in the vm thread"); |
2200 assert(Threads_lock->is_locked(), "Threads_lock should be locked by safepoint code"); |
2205 assert(Threads_lock->is_locked(), "Threads_lock should be locked by safepoint code"); |
2421 f.deoptimize(thread); |
2426 f.deoptimize(thread); |
2422 } else { |
2427 } else { |
2423 fatal("missed deoptimization!"); |
2428 fatal("missed deoptimization!"); |
2424 } |
2429 } |
2425 } |
2430 } |
|
2431 #if INCLUDE_TRACE |
|
2432 if (thread->is_trace_suspend()) { |
|
2433 TRACE_SUSPEND_THREAD(thread); |
|
2434 } |
|
2435 #endif |
2426 } |
2436 } |
2427 |
2437 |
2428 // Slow path when the native==>VM/Java barriers detect a safepoint is in |
2438 // Slow path when the native==>VM/Java barriers detect a safepoint is in |
2429 // progress or when _suspend_flags is non-zero. |
2439 // progress or when _suspend_flags is non-zero. |
2430 // Current thread needs to self-suspend if there is a suspend request and/or |
2440 // Current thread needs to self-suspend if there is a suspend request and/or |