equal
deleted
inserted
replaced
435 GrowableArray<DCmdArgumentInfo*>* DCmdWithParser::argument_info_array() const { |
435 GrowableArray<DCmdArgumentInfo*>* DCmdWithParser::argument_info_array() const { |
436 return _dcmdparser.argument_info_array(); |
436 return _dcmdparser.argument_info_array(); |
437 } |
437 } |
438 |
438 |
439 void DCmdFactory::push_jmx_notification_request() { |
439 void DCmdFactory::push_jmx_notification_request() { |
440 MutexLocker ml(Service_lock, Mutex::_no_safepoint_check_flag); |
440 MutexLocker ml(Notification_lock, Mutex::_no_safepoint_check_flag); |
441 _has_pending_jmx_notification = true; |
441 _has_pending_jmx_notification = true; |
442 Service_lock->notify_all(); |
442 Notification_lock->notify_all(); |
443 } |
443 } |
444 |
444 |
445 void DCmdFactory::send_notification(TRAPS) { |
445 void DCmdFactory::send_notification(TRAPS) { |
446 DCmdFactory::send_notification_internal(THREAD); |
446 DCmdFactory::send_notification_internal(THREAD); |
447 // Clearing pending exception to avoid premature termination of |
447 // Clearing pending exception to avoid premature termination of |
453 void DCmdFactory::send_notification_internal(TRAPS) { |
453 void DCmdFactory::send_notification_internal(TRAPS) { |
454 ResourceMark rm(THREAD); |
454 ResourceMark rm(THREAD); |
455 HandleMark hm(THREAD); |
455 HandleMark hm(THREAD); |
456 bool notif = false; |
456 bool notif = false; |
457 { |
457 { |
458 MutexLocker ml(Service_lock, Mutex::_no_safepoint_check_flag); |
458 MutexLocker ml(Notification_lock, Mutex::_no_safepoint_check_flag); |
459 notif = _has_pending_jmx_notification; |
459 notif = _has_pending_jmx_notification; |
460 _has_pending_jmx_notification = false; |
460 _has_pending_jmx_notification = false; |
461 } |
461 } |
462 if (notif) { |
462 if (notif) { |
463 |
463 |