< prev index next >

src/hotspot/share/utilities/bitMap.cpp

Print this page

        

*** 215,225 **** bm_word_t* pw = word_addr(beg); bm_word_t w = *pw; bm_word_t mr = inverted_bit_mask_for_range(beg, end); bm_word_t nw = value ? (w | ~mr) : (w & mr); while (true) { ! bm_word_t res = Atomic::cmpxchg(nw, pw, w); if (res == w) break; w = res; nw = value ? (w | ~mr) : (w & mr); } } --- 215,225 ---- bm_word_t* pw = word_addr(beg); bm_word_t w = *pw; bm_word_t mr = inverted_bit_mask_for_range(beg, end); bm_word_t nw = value ? (w | ~mr) : (w & mr); while (true) { ! bm_word_t res = Atomic::cmpxchg(pw, w, nw); if (res == w) break; w = res; nw = value ? (w | ~mr) : (w & mr); } }
*** 638,648 **** BitMap::idx_t *table = NEW_C_HEAP_ARRAY(idx_t, 256, mtInternal); for (uint i = 0; i < 256; i++) { table[i] = num_set_bits(i); } ! if (!Atomic::replace_if_null(table, &_pop_count_table)) { guarantee(_pop_count_table != NULL, "invariant"); FREE_C_HEAP_ARRAY(idx_t, table); } } } --- 638,648 ---- BitMap::idx_t *table = NEW_C_HEAP_ARRAY(idx_t, 256, mtInternal); for (uint i = 0; i < 256; i++) { table[i] = num_set_bits(i); } ! if (!Atomic::replace_if_null(&_pop_count_table, table)) { guarantee(_pop_count_table != NULL, "invariant"); FREE_C_HEAP_ARRAY(idx_t, table); } } }
< prev index next >