8225453: is_busy diagnostics and other baseline cleanups from Async Monitor Deflation project

Reviewed-by: dholmes, rehn, coleenp
This commit is contained in:
Daniel D. Daugherty 2019-06-12 10:52:45 -04:00
parent f93ae041ad
commit d02937254d
4 changed files with 44 additions and 31 deletions

View file

@ -235,6 +235,7 @@ class ObjectMonitor {
// TODO-FIXME: assert _owner == null implies _recursions = 0
return _contentions|_waiters|intptr_t(_owner)|intptr_t(_cxq)|intptr_t(_EntryList);
}
const char* is_busy_to_string(stringStream* ss);
intptr_t is_entered(Thread* current) const;
@ -268,7 +269,9 @@ class ObjectMonitor {
// _cxq == 0 _succ == NULL _owner == NULL _waiters == 0
// _contentions == 0 EntryList == NULL
// _recursions == 0 _WaitSet == NULL
assert(((is_busy()|_recursions) == 0), "freeing inuse monitor");
DEBUG_ONLY(stringStream ss;)
assert((is_busy() | _recursions) == 0, "freeing in-use monitor: %s, "
"recursions=" INTPTR_FORMAT, is_busy_to_string(&ss), _recursions);
_succ = NULL;
_EntryList = NULL;
_cxq = NULL;