src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp

changeset 2132
179464550c7d
parent 2071
be3f9c242c9d
child 2188
8b10f48633dc
equal deleted inserted replaced
2122:dee553c74493 2132:179464550c7d
1944 _promoInfo.startTrackingPromotions(); 1944 _promoInfo.startTrackingPromotions();
1945 } 1945 }
1946 1946
1947 bool CompactibleFreeListSpace::no_allocs_since_save_marks() { 1947 bool CompactibleFreeListSpace::no_allocs_since_save_marks() {
1948 assert(_promoInfo.tracking(), "No preceding save_marks?"); 1948 assert(_promoInfo.tracking(), "No preceding save_marks?");
1949 guarantee(SharedHeap::heap()->n_par_threads() == 0, 1949 assert(SharedHeap::heap()->n_par_threads() == 0,
1950 "Shouldn't be called (yet) during parallel part of gc."); 1950 "Shouldn't be called if using parallel gc.");
1951 return _promoInfo.noPromotions(); 1951 return _promoInfo.noPromotions();
1952 } 1952 }
1953 1953
1954 #define CFLS_OOP_SINCE_SAVE_MARKS_DEFN(OopClosureType, nv_suffix) \ 1954 #define CFLS_OOP_SINCE_SAVE_MARKS_DEFN(OopClosureType, nv_suffix) \
1955 \ 1955 \
2567 } 2567 }
2568 } 2568 }
2569 2569
2570 HeapWord* CFLS_LAB::alloc(size_t word_sz) { 2570 HeapWord* CFLS_LAB::alloc(size_t word_sz) {
2571 FreeChunk* res; 2571 FreeChunk* res;
2572 guarantee(word_sz == _cfls->adjustObjectSize(word_sz), "Error"); 2572 assert(word_sz == _cfls->adjustObjectSize(word_sz), "Error");
2573 if (word_sz >= CompactibleFreeListSpace::IndexSetSize) { 2573 if (word_sz >= CompactibleFreeListSpace::IndexSetSize) {
2574 // This locking manages sync with other large object allocations. 2574 // This locking manages sync with other large object allocations.
2575 MutexLockerEx x(_cfls->parDictionaryAllocLock(), 2575 MutexLockerEx x(_cfls->parDictionaryAllocLock(),
2576 Mutex::_no_safepoint_check_flag); 2576 Mutex::_no_safepoint_check_flag);
2577 res = _cfls->getChunkFromDictionaryExact(word_sz); 2577 res = _cfls->getChunkFromDictionaryExact(word_sz);

mercurial