|
Boost : |
From: John Maddock (john_at_[hidden])
Date: 2004-09-20 04:59:20
> I'm interested in getting something like "needs_lock" below into the
> normal traits, perhaps as part of boost thread. It informs you
> whether of not an operation on such a contiguous block needs a lock to
> be atomic.
>
> For example, on ia32 32 bit aligned ops are atomic, on ia64 it is 64
> bit. doubles on ia32 need locking to be atomic, on ia64 they don't.
> sizeof(void*) works generically for these two platforms as is included
> in the code below. A default, safety first implementation might
> return true always for needs lock, or perhaps, true for all sizeof's
> greater than a byte.
Is it the case that we could actually rely on this? I thought for example
that on IA32 operations were only atomic and thread safe when the assembly
is prefixed by LOCK?
John.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk