< prev index next >

src/hotspot/share/utilities/concurrentHashTable.inline.hpp

Print this page

        

*** 261,272 **** for (Node* next = bucket->first(); next != NULL ; next = next->next()) { if (pref != NULL) { Prefetch::read(*pref->value(), 0); pref = pref->next(); } ! if (next->next() != NULL) { ! Prefetch::read(*next->next()->value(), 0); } if (eval_f(next->value())) { return true; } } --- 261,275 ---- for (Node* next = bucket->first(); next != NULL ; next = next->next()) { if (pref != NULL) { Prefetch::read(*pref->value(), 0); pref = pref->next(); } ! // Read next() Node* once. May be racing with a thread moving the next ! // pointers. ! Node* next_pref = next->next(); ! if (next_pref != NULL) { ! Prefetch::read(*next_pref->value(), 0); } if (eval_f(next->value())) { return true; } }
< prev index next >