src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue May 21 15:13:50 2013
--- new/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue May 21 15:13:50 2013
*** 151,162 ****
--- 151,160 ----
if (CollectedHeap::use_parallel_gc_threads()) {
for (size_t i = IndexSetStart; i < IndexSetSize; i += IndexSetStride) {
_indexedFreeListParLocks[i] = new Mutex(Mutex::leaf - 1, // == ExpandHeap_lock - 1
"a freelist par lock",
true);
if (_indexedFreeListParLocks[i] == NULL)
vm_exit_during_initialization("Could not allocate a par lock");
DEBUG_ONLY(
_indexedFreeList[i].set_protecting_lock(_indexedFreeListParLocks[i]);
)
}
_dictionary->set_par_lock(&_parDictionaryAllocLock);
*** 1760,1770 ****
--- 1758,1768 ----
ec = (FreeChunk*)chunk;
}
}
ec->set_size(size);
debug_only(ec->mangleFreed(size));
! if (size < SmallForDictionary && ParallelGCThreads != 0) {
lock = _indexedFreeListParLocks[size];
}
MutexLockerEx x(lock, Mutex::_no_safepoint_check_flag);
addChunkAndRepairOffsetTable((HeapWord*)ec, size, true);
// record the birth under the lock since the recording involves
src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File