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

ben-manes / caffeine / #3256
100%

Build:
DEFAULT BRANCH: master
Ran 21 Aug 2022 10:46PM UTC
Jobs 1
Files 77
Run time 3s
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

pending completion
#3256

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

Jobs
ID Job ID Ran Files Coverage
1 #3256.1 21 Aug 2022 10:46PM UTC 0
98.37
Source Files on build #3256
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #3256
  • 3f960cf1 on github
  • Prev Build on master
  • Next Build on master
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