On 07/11/2019 17:56, Rene Engelhard wrote:
On Thu, Nov 07, 2019 at 10:18:06AM +0100, Stephan Bergmann wrote:I don't understand your "Given the introduced AtomicCounter is used later..." reasoning above, but commented atObviously I meant static AtomicCounter gnEnterCount; which comes later (and wasn't there before) and uses the using AtomicCounter = [...] definition, so #ifdef'ing the whole block out would have been more invasive.
Ah. What I'd meant was something like
#if ... using AtomicCounter = std::atomic<std::make_unsigned_t<std::sig_atomic_t>>; static_assert(AtomicCounter::is_always_lock_free); #else using AtomicCounter = volatile std::make_unsigned_t<std::sig_atomic_t>; #endif