Mercurial > hg > graal-jvmci-8
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); |