hotspot/src/share/vm/services/memTrackWorker.cpp
changeset 13470 a99b4dc12f9b
parent 13195 be27e1b6a4b9
child 13744 631fe815def5
equal deleted inserted replaced
13310:c2f7a7b84d7a 13470:a99b4dc12f9b
    97       assert(count_recorder(_gen[_head]) <= MemRecorder::_instance_count,
    97       assert(count_recorder(_gen[_head]) <= MemRecorder::_instance_count,
    98         "infinite loop after dequeue");
    98         "infinite loop after dequeue");
    99     }
    99     }
   100     if (rec != NULL) {
   100     if (rec != NULL) {
   101       // merge the recorder into staging area
   101       // merge the recorder into staging area
   102       bool result = snapshot->merge(rec);
   102       if (!snapshot->merge(rec)) {
   103       assert(result, "merge failed");
   103         MemTracker::shutdown(MemTracker::NMT_out_of_memory);
   104       debug_only(_merge_count ++;)
   104       } else {
       
   105         NOT_PRODUCT(_merge_count ++;)
       
   106       }
   105       MemTracker::release_thread_recorder(rec);
   107       MemTracker::release_thread_recorder(rec);
   106     } else {
   108     } else {
   107       // no more recorder to merge, promote staging area
   109       // no more recorder to merge, promote staging area
   108       // to snapshot
   110       // to snapshot
   109       if (_head != _tail) {
   111       if (_head != _tail) {
   127       }
   129       }
   128     }
   130     }
   129   }
   131   }
   130   assert(MemTracker::shutdown_in_progress(), "just check");
   132   assert(MemTracker::shutdown_in_progress(), "just check");
   131 
   133 
   132   // transites to final shutdown
   134   // transits to final shutdown
   133   MemTracker::final_shutdown();
   135   MemTracker::final_shutdown();
   134 }
   136 }
   135 
   137 
   136 // at synchronization point, where 'safepoint visible' Java threads are blocked
   138 // at synchronization point, where 'safepoint visible' Java threads are blocked
   137 // at a safepoint, and the rest of threads are blocked on ThreadCritical lock.
   139 // at a safepoint, and the rest of threads are blocked on ThreadCritical lock.