diff -r 8afcbcb8271a -r ca74d9691341 hotspot/src/share/vm/compiler/compileBroker.cpp --- a/hotspot/src/share/vm/compiler/compileBroker.cpp Fri Jun 20 08:14:30 2014 +0200 +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Fri Jun 20 09:25:13 2014 +0200 @@ -639,8 +639,11 @@ while (next != NULL) { CompileTask* current = next; next = current->next(); - // Wake up thread that blocks on the compile task. - current->lock()->notify(); + { + // Wake up thread that blocks on the compile task. + MutexLocker ct_lock(current->lock()); + current->lock()->notify(); + } // Put the task back on the freelist. CompileTask::free(current); }