src/share/vm/services/memTracker.cpp
Print this page
rev 6314 : imported patch nmtfix
@@ -783,11 +783,11 @@
void MemTracker::Tracker::record(address old_addr, address new_addr, size_t size,
MEMFLAGS flags, address pc) {
assert(old_addr != NULL && new_addr != NULL, "Sanity check");
assert(_op == Realloc || _op == NoOp, "Wrong call");
- if (MemTracker::is_on() && NMT_CAN_TRACK(flags) && _op != NoOp) {
+ if (MemTracker::is_on() && NMT_CAN_TRACK(flags) && _op != NoOp && !MemTracker::shutdown_in_progress()) {
assert(_seq > 0, "Need pre-reserve sequence number");
if (_need_thread_critical_lock) {
ThreadCritical tc;
// free old address, use pre-reserved sequence number
MemTracker::write_tracking_record(old_addr, MemPointerRecord::free_tag(),
@@ -809,11 +809,11 @@
void MemTracker::Tracker::record(address addr, size_t size, MEMFLAGS flags, address pc) {
// OOM already?
if (addr == NULL) return;
- if (MemTracker::is_on() && NMT_CAN_TRACK(flags) && _op != NoOp) {
+ if (MemTracker::is_on() && NMT_CAN_TRACK(flags) && _op != NoOp && !MemTracker::shutdown_in_progress()) {
bool pre_reserved_seq = (_seq != 0);
address pc = CALLER_CALLER_PC;
MEMFLAGS orig_flags = flags;
// or the tagging flags