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

ben-manes / caffeine / #2689
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: v3.dev
DEFAULT BRANCH: master
Ran 28 Nov 2021 08:47AM UTC
Jobs 1
Files 73
Run time 6s
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
#2689

push

github-actions

ben-manes
Strengthen memory barriers used by benign reads and writes

`drainStatus`
The status is used to trigger the maintenance and guard against some
unnecessary runs. As the maintenance work is fast, atomic, and expected
to run frequently there is no harm even if a race causes an extra
execution. This might happen due to a buffered write to transition into
the processing state being stomped on by a cache write CAS'ing to flag
that a drain is required ASAP. This case now uses a stronger release and
opaque is used where no conflicting writes are possible.

The loop in `scheduleAfterWrite()` only assumes a read barrier if
retrying due to a failed CAS. This is guaranteed on weakly ordered
memory models like Arm's. We specifically avoided assumptions like [1]
that tried to piggyback other writes onto a CAS.

`timestamps`
The expiration timestamps are upgraded from plain loads and stores to
opaque ones. This is primarily for code clarity when matching operations
against [2]. A benefit is that it does ensure 64-bit loads on 32-bit
systems to avoid word tearing (as allowed by the Java spec, but is no
longer applicable).

[1] https://youtu.be/EFkpmFt61Jo?t=1789
[2] http://gee.cs.oswego.edu/dl/html/j9mm.html

6372 of 6792 relevant lines covered (93.82%)

0.94 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #2689.1 28 Nov 2021 08:47AM UTC 0
93.82
Source Files on build #2689
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #2689
  • 4fb19e80 on github
  • Prev Build on v3.dev
  • Next Build on v3.dev
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