1157 uintptr_t owner = UNS(_owner); |
1157 uintptr_t owner = UNS(_owner); |
1158 uintptr_t lockword = UNS(_LockWord.FullWord); |
1158 uintptr_t lockword = UNS(_LockWord.FullWord); |
1159 uintptr_t entrylist = UNS(_EntryList); |
1159 uintptr_t entrylist = UNS(_EntryList); |
1160 uintptr_t waitset = UNS(_WaitSet); |
1160 uintptr_t waitset = UNS(_WaitSet); |
1161 uintptr_t ondeck = UNS(_OnDeck); |
1161 uintptr_t ondeck = UNS(_OnDeck); |
|
1162 // Print _name with precision limit, in case failure is due to memory |
|
1163 // corruption that also trashed _name. |
1162 assert((owner|lockword|entrylist|waitset|ondeck) == 0, |
1164 assert((owner|lockword|entrylist|waitset|ondeck) == 0, |
1163 "_owner(" INTPTR_FORMAT ")|_LockWord(" INTPTR_FORMAT ")|_EntryList(" INTPTR_FORMAT ")|_WaitSet(" |
1165 "%.*s: _owner(" INTPTR_FORMAT ")|_LockWord(" INTPTR_FORMAT ")|_EntryList(" INTPTR_FORMAT ")|_WaitSet(" |
1164 INTPTR_FORMAT ")|_OnDeck(" INTPTR_FORMAT ") != 0", owner, lockword, entrylist, waitset, ondeck); |
1166 INTPTR_FORMAT ")|_OnDeck(" INTPTR_FORMAT ") != 0", |
|
1167 MONITOR_NAME_LEN, _name, owner, lockword, entrylist, waitset, ondeck); |
1165 #endif |
1168 #endif |
1166 } |
1169 } |
1167 |
1170 |
1168 void Monitor::ClearMonitor(Monitor * m, const char *name) { |
1171 void Monitor::ClearMonitor(Monitor * m, const char *name) { |
1169 m->_owner = NULL; |
1172 m->_owner = NULL; |
1189 #ifdef ASSERT |
1192 #ifdef ASSERT |
1190 _allow_vm_block = allow_vm_block; |
1193 _allow_vm_block = allow_vm_block; |
1191 _rank = Rank; |
1194 _rank = Rank; |
1192 NOT_PRODUCT(_safepoint_check_required = safepoint_check_required;) |
1195 NOT_PRODUCT(_safepoint_check_required = safepoint_check_required;) |
1193 #endif |
1196 #endif |
1194 } |
|
1195 |
|
1196 Mutex::~Mutex() { |
|
1197 assert((UNS(_owner)|UNS(_LockWord.FullWord)|UNS(_EntryList)|UNS(_WaitSet)|UNS(_OnDeck)) == 0, ""); |
|
1198 } |
1197 } |
1199 |
1198 |
1200 Mutex::Mutex(int Rank, const char * name, bool allow_vm_block, |
1199 Mutex::Mutex(int Rank, const char * name, bool allow_vm_block, |
1201 SafepointCheckRequired safepoint_check_required) { |
1200 SafepointCheckRequired safepoint_check_required) { |
1202 ClearMonitor((Monitor *) this, name); |
1201 ClearMonitor((Monitor *) this, name); |