equal
deleted
inserted
replaced
251 collide = false; |
251 collide = false; |
252 } |
252 } |
253 else if (!wasUncontended) // CAS already known to fail |
253 else if (!wasUncontended) // CAS already known to fail |
254 wasUncontended = true; // Continue after rehash |
254 wasUncontended = true; // Continue after rehash |
255 else if (a.cas(v = a.value, ((fn == null) ? v + x : |
255 else if (a.cas(v = a.value, ((fn == null) ? v + x : |
256 fn.operateAsLong(v, x)))) |
256 fn.applyAsLong(v, x)))) |
257 break; |
257 break; |
258 else if (n >= NCPU || cells != as) |
258 else if (n >= NCPU || cells != as) |
259 collide = false; // At max size or stale |
259 collide = false; // At max size or stale |
260 else if (!collide) |
260 else if (!collide) |
261 collide = true; |
261 collide = true; |
289 } |
289 } |
290 if (init) |
290 if (init) |
291 break; |
291 break; |
292 } |
292 } |
293 else if (casBase(v = base, ((fn == null) ? v + x : |
293 else if (casBase(v = base, ((fn == null) ? v + x : |
294 fn.operateAsLong(v, x)))) |
294 fn.applyAsLong(v, x)))) |
295 break; // Fall back on using base |
295 break; // Fall back on using base |
296 } |
296 } |
297 } |
297 } |
298 |
298 |
299 /** |
299 /** |
342 else if (a.cas(v = a.value, |
342 else if (a.cas(v = a.value, |
343 ((fn == null) ? |
343 ((fn == null) ? |
344 Double.doubleToRawLongBits |
344 Double.doubleToRawLongBits |
345 (Double.longBitsToDouble(v) + x) : |
345 (Double.longBitsToDouble(v) + x) : |
346 Double.doubleToRawLongBits |
346 Double.doubleToRawLongBits |
347 (fn.operateAsDouble |
347 (fn.applyAsDouble |
348 (Double.longBitsToDouble(v), x))))) |
348 (Double.longBitsToDouble(v), x))))) |
349 break; |
349 break; |
350 else if (n >= NCPU || cells != as) |
350 else if (n >= NCPU || cells != as) |
351 collide = false; // At max size or stale |
351 collide = false; // At max size or stale |
352 else if (!collide) |
352 else if (!collide) |
385 else if (casBase(v = base, |
385 else if (casBase(v = base, |
386 ((fn == null) ? |
386 ((fn == null) ? |
387 Double.doubleToRawLongBits |
387 Double.doubleToRawLongBits |
388 (Double.longBitsToDouble(v) + x) : |
388 (Double.longBitsToDouble(v) + x) : |
389 Double.doubleToRawLongBits |
389 Double.doubleToRawLongBits |
390 (fn.operateAsDouble |
390 (fn.applyAsDouble |
391 (Double.longBitsToDouble(v), x))))) |
391 (Double.longBitsToDouble(v), x))))) |
392 break; // Fall back on using base |
392 break; // Fall back on using base |
393 } |
393 } |
394 } |
394 } |
395 |
395 |