comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 355:0edda524b58c

6722565: G1: assert !r->is_on_unclean_list() fires Summary: Under certain circumstances, two cleanup threads can claim and process the same region. Reviewed-by: apetrusenko, ysr
author tonyp
date Wed, 06 Aug 2008 11:57:31 -0400
parents 9bb2c10ac07b
children cc68c8e9b309
comparison
equal deleted inserted replaced
354:c0f8f7790199 355:0edda524b58c
871 // As above but starting from the region at index idx. 871 // As above but starting from the region at index idx.
872 void heap_region_iterate_from(int idx, HeapRegionClosure* blk); 872 void heap_region_iterate_from(int idx, HeapRegionClosure* blk);
873 873
874 HeapRegion* region_at(size_t idx); 874 HeapRegion* region_at(size_t idx);
875 875
876
877 // Divide the heap region sequence into "chunks" of some size (the number 876 // Divide the heap region sequence into "chunks" of some size (the number
878 // of regions divided by the number of parallel threads times some 877 // of regions divided by the number of parallel threads times some
879 // overpartition factor, currently 4). Assumes that this will be called 878 // overpartition factor, currently 4). Assumes that this will be called
880 // in parallel by ParallelGCThreads worker threads with discinct worker 879 // in parallel by ParallelGCThreads worker threads with discinct worker
881 // ids in the range [0..max(ParallelGCThreads-1, 1)], that all parallel 880 // ids in the range [0..max(ParallelGCThreads-1, 1)], that all parallel
889 // i.e., that a closure never attempt to abort a traversal. 888 // i.e., that a closure never attempt to abort a traversal.
890 void heap_region_par_iterate_chunked(HeapRegionClosure* blk, 889 void heap_region_par_iterate_chunked(HeapRegionClosure* blk,
891 int worker, 890 int worker,
892 jint claim_value); 891 jint claim_value);
893 892
893 #ifdef ASSERT
894 bool check_heap_region_claim_values(jint claim_value);
895 #endif // ASSERT
896
894 // Iterate over the regions (if any) in the current collection set. 897 // Iterate over the regions (if any) in the current collection set.
895 void collection_set_iterate(HeapRegionClosure* blk); 898 void collection_set_iterate(HeapRegionClosure* blk);
896 899
897 // As above but starting from region r 900 // As above but starting from region r
898 void collection_set_iterate_from(HeapRegion* r, HeapRegionClosure *blk); 901 void collection_set_iterate_from(HeapRegion* r, HeapRegionClosure *blk);