hotspot/src/share/vm/runtime/mutex.cpp
changeset 46767 e2bb2b8ff65a
parent 46644 a5813fb66270
equal deleted inserted replaced
46766:1f26ac73b909 46767:e2bb2b8ff65a
  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);