equal
deleted
inserted
replaced
1904 // Above heap_region_containing may return NULL as we always scan claim |
1904 // Above heap_region_containing may return NULL as we always scan claim |
1905 // until the end of the heap. In this case, just jump to the next region. |
1905 // until the end of the heap. In this case, just jump to the next region. |
1906 HeapWord* end = curr_region != NULL ? curr_region->end() : finger + HeapRegion::GrainWords; |
1906 HeapWord* end = curr_region != NULL ? curr_region->end() : finger + HeapRegion::GrainWords; |
1907 |
1907 |
1908 // Is the gap between reading the finger and doing the CAS too long? |
1908 // Is the gap between reading the finger and doing the CAS too long? |
1909 HeapWord* res = Atomic::cmpxchg(end, &_finger, finger); |
1909 HeapWord* res = Atomic::cmpxchg(&_finger, finger, end); |
1910 if (res == finger && curr_region != NULL) { |
1910 if (res == finger && curr_region != NULL) { |
1911 // we succeeded |
1911 // we succeeded |
1912 HeapWord* bottom = curr_region->bottom(); |
1912 HeapWord* bottom = curr_region->bottom(); |
1913 HeapWord* limit = curr_region->next_top_at_mark_start(); |
1913 HeapWord* limit = curr_region->next_top_at_mark_start(); |
1914 |
1914 |