Boost logo

Boost :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2007-10-08 09:23:03


> > _ReadWriteBarrier stops the compiler from reordering. Going to a
> > non-intrinsic InterlockedCompareExchange will also have
> this effect,
> > but it might be possible to achieve it in another (cheaper)
> > compiler-specific way; __asm__ ( :::"memory" ) is the GCC
> equivalent.
> > Borland may already not reorder across a volatile read;
> this needs to be tested.
>
> Totally agreed. The easiest change to make mingw and Borland
> non-broken was to use ICE, but it is definitely overkill if
> there's a cheaper way.
>
> All that's need here is a compiler barrier; I couldn't find
> an equivalent in the Borland docs this morning, but that
> doesn't mean there isn't one. Does __asm__ ( :::"memory" )
> work on mingw? If so, I'll use that rather than ICE for mingw.

FWIW, Intel V10 on Windows seems not to implement _ReadWriteBarrier neither
(at least we get linker errors there as well).

Regards Hartmut


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