owstTaskTerminator.cpp
156 if (exit_termination(tasks, terminator)) {
157 MonitorLockerEx locker(_blocker, Mutex::_no_safepoint_check_flag);
158 if (tasks >= _offered_termination - 1) {
159 locker.notify_all();
160 } else {
161 for (; tasks > 1; tasks--) {
162 locker.notify();
163 }
164 }
165 _spin_master = NULL;
166 return false;
167 } else if (_offered_termination == _n_threads) {
168 return true;
169 }
170 }
Line 167, it checks termination without _blocker lock( _offer_termination is a shared variable).