in frontend/src/components/threaddump/util.ts [52:104]
export function monitorToString(monitor: any): string {
let state = monitor.state;
if (state === 'WAITING_ON') {
let s = 'waiting on ' + addressToString(monitor.address) + ' ';
if (monitor.classInstance) {
s += '(a java.lang.Class for ' + monitor.class + ')';
} else {
s += '(a ' + monitor.class + ')';
}
return s;
} else if (state === 'WAITING_TO_RE_LOCK') {
let s = 'waiting to re-lock in wait() ' + addressToString(monitor.address) + ' ';
if (monitor.classInstance) {
s += '(a java.lang.Class for ' + monitor.class + ')';
} else {
s += '(a ' + monitor.class + ')';
}
return s;
} else if (state === 'WAITING_ON_NO_OBJECT_REFERENCE_AVAILABLE') {
return 'waiting on <no object reference available>';
} else if (state === 'PARKING') {
return 'parking to wait for ' + addressToString(monitor.address) + ' (a ' + monitor.class + ')';
} else if (state === 'WAITING_ON_CLASS_INITIALIZATION') {
return 'waiting on the Class initialization monitor for ' + monitor.class;
} else if (state === 'LOCKED') {
let s = 'locked ' + addressToString(monitor.address) + ' ';
if (monitor.classInstance) {
s += '(a java.lang.Class for ' + monitor.class + ')';
} else {
s += '(a ' + monitor.class + ')';
}
return s;
} else if (state === 'WAITING_TO_LOCK') {
let s = 'waiting to lock ' + monitorToString(monitor.address) + ' ';
if (monitor.classInstance) {
s += '(a java.lang.Class for ' + monitor.class + ')';
} else {
s += '(a ' + monitor.class + ')';
}
return s;
} else if (state === 'ELIMINATED_SCALAR_REPLACED') {
return 'eliminated <owner is scalar replaced> (a ' + monitor.class + ')';
} else if (state === 'ELIMINATED') {
let s = 'eliminated ' + monitorToString(monitor.address) + ' ';
if (monitor.classInstance) {
s += '(a java.lang.Class for ' + monitor.class + ')';
} else {
s += '(a ' + monitor.class + ')';
}
return s;
}
return '';
}