• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ben-manes / caffeine / #3255 / 1
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: v3.dev
DEFAULT BRANCH: master
Ran 21 Aug 2022 09:55PM UTC
Files 77
Run time 2s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Aug 2022 09:55PM UTC coverage: 98.366% (+0.03%) from 98.338%
#3255.1

push

github-actions

ben-manes
Fix weak/soft computeIfAbsent when a value is published but expiry fails

If a computeIfAbsent discovers that the value was reference collected then
it performs the eviction and reuses that entry with the new value. If the
expiry calculation fails (as user code), then the computation is rolled
back. Previously the setting order allowed the new value to be exposed
early so it remained in the cache.

The entry's metadata should be calculated, the value set, and then the
metadata. This way calculations do not leave remnants and an expired
value is not read as valid. A stricter memory ordering is required to
ensure that this is not reordered by the compiler/hardware in case of a
injected data store (e.g. safepoint), rather than piggybacking on the
lock release. While not observed, as x86 is TSO, this avoids a possible
race on a weaker memory model (arm64).

7343 of 7465 relevant lines covered (98.37%)

0.98 hits per line

Source Files on job #3255.1
  • Tree
  • List 0
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 3255
  • 3f960cf1 on github
  • Prev Job for on v3.dev (##3251.1)
  • Next Job for on v3.dev (##3257.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc