equal
deleted
inserted
replaced
433 jtiwh.rewind(); |
433 jtiwh.rewind(); |
434 for (; JavaThread *thr = jtiwh.next(); ) { |
434 for (; JavaThread *thr = jtiwh.next(); ) { |
435 if (thr!=thr_cur && thr->thread_state() == _thread_in_native) { |
435 if (thr!=thr_cur && thr->thread_state() == _thread_in_native) { |
436 num_active++; |
436 num_active++; |
437 if (thr->is_Compiler_thread()) { |
437 if (thr->is_Compiler_thread()) { |
|
438 #if INCLUDE_JVMCI |
|
439 CompilerThread* ct = (CompilerThread*) thr; |
|
440 if (ct->compiler() == NULL || !ct->compiler()->is_jvmci() || !UseJVMCINativeLibrary) { |
|
441 num_active_compiler_thread++; |
|
442 } else { |
|
443 // When using a compiler in a JVMCI shared library, it's possible |
|
444 // for one compiler thread to grab a lock in the shared library, |
|
445 // enter HotSpot and go to sleep on the shutdown safepoint. Another |
|
446 // JVMCI shared library compiler thread can then attempt to grab the |
|
447 // lock and thus never make progress. |
|
448 } |
|
449 #else |
438 num_active_compiler_thread++; |
450 num_active_compiler_thread++; |
|
451 #endif |
439 } |
452 } |
440 } |
453 } |
441 } |
454 } |
442 |
455 |
443 if (num_active == 0) { |
456 if (num_active == 0) { |