Mercurial > hg > truffle
comparison src/share/vm/services/memTrackWorker.cpp @ 6646:c38f13903fdf
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ just before the NPG (no perm gen) changeset
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 29 Oct 2012 21:10:04 +0100 |
parents | 4acebbe310e1 |
children | 33143ee07800 |
comparison
equal
deleted
inserted
replaced
6590:dc5eec61daba | 6646:c38f13903fdf |
---|---|
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. |