Boost logo

Boost :

Subject: Re: [boost] [thread] Address sanitizer failures on marshall-mac
From: Jonathan Wakely (jwakely.boost_at_[hidden])
Date: 2014-03-09 06:31:00


On 8 March 2014 18:34, Niall Douglas wrote:
> On 8 Mar 2014 at 18:29, Jonathan Wakely wrote:
>
>> The new version is present in both Clang and GCC, and if you use those
>> compilers' built-in atomic operations (either the older __sync_xxxx or
>> newer __atomic_xxx intrinsics) then tsan should understand them and
>> need no instrumentation.
>
> Can tsan understand when an atomic is being used for serialisation? I
> can see a CAS lock being heuristically determined, but some of the
> fancier semaphore based techniques surely need some explicit markup.

I believe it can, because it knows that an atomic store with
memory_order_release in one thread and a load with
memory_order_acquire in another thread implies an ordering, and so can
tell there is no race.

I don't think tsan v2 even supports any explicit markup, so you
couldn't use it if you wanted to.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk