Re: (hypothetical? bogus?) TSAN failure reported in ForkJoinPool (JDK11 and "refresh" versions)
Doug Lea via Concurrency-interest <[email protected]> Fri, 17 Jul 2020 11:23:36 -0400
| Newsgroups | gmane.comp.java.jsr.166-concurrency |
|---|---|
| Message-ID | <[email protected]> |
On 7/17/20 10:55 AM, Chris Povirk via Concurrency-interest wrote: > I built jsr166 from CVS head. I can reproduce the TSAN failure with that. > > If I edit lockedPush to use setRelease instead of a plain write, the > failure goes away. > > (Oddly, the failure /also/ goes away if I merely switch to > /setOpaque/, which I would not have thought would be enough. This may > well be more of an artifact of what our TSAN can detect. (And again, > this whole /failure/ may well be an artifact of TSAN.)) Yes, this does seem to be a TSAN limitation that would be hard to address. We could change the write to Opaque mode to be clearer about it eventually occurring, but subsequent release or volatile accesses that are guaranteed to follow eventually ensure it anyway (while also allowing a tiny bit more parallelism here). -Doug _______________________________________________ Concurrency-interest mailing list [email protected] http://cs.oswego.edu/mailman/listinfo/concurrency-interest