On 8/12/2011 12:16 PM, Christopher wrote:
> On Aug 12, 11:04 am, "madamema...@yahoo.com"<madamema...@yahoo.com>
> wrote:
>> On Aug 12, 10:10 am, Victor Bazarov<v.baza...@comcast.invalid> wrote:
>>
>>> On 8/12/2011 10:47 AM, Christopher wrote:
>>
>>>> I disagree with my cooworker, but neither of us can seem to find any
>>>> documentation to support our belief.
>>>> Is assignment to a pointer guarenteed to be an atomic operation?
>>
>>> Not if said assignment takes more than one processor instruction,
>>> probably. The new standard has a special section on atomics, perhaps
>>> that's what you need to use... See the header<atomic>.
>>
>> Even if it's a single processor instruction it's not guarenteed to be
>> atomic.
>> Read your processors manual to know when and when it isn't.
>>
>> Martin Shobe
>
> Well, one would then conclude it depends not only on the compiler, but
> also the processor. If we don't want to enforce the limitation that
> the code should be compiled and executed on a particular processor,
> and we wish to be as close to standard C++ as possible, then we should
> indeed use a mutex around pointer assignment, no?
If you can use a compiler that implements the new 'atomic' type, you
should. That will take care of the synchronization and exclusivity *if*
it's needed. See Chapter 29 of the new Standard.
V
--
I do not respond to top-posted replies, please don't ask
|