[ovs-dev] [PATCH] ovs-atomics: Add atomic support for Windows.

Gurucharan Shetty shettyg at nicira.com
Thu Aug 28 20:31:04 UTC 2014

> I'd normally expect 64-bit reads and write to be atomic when we're
> building for x86-64:
>> +/* 64 bit reads and write are not atomic on x86.
Currently, we are only doing 32 bit builds. So, I put the following in
ovs-atomic.h to only include this file for 32 bit builds :
#elif _MSC_VER && defined(_M_IX86)
        #include "ovs-atomic-msvc.h"

I will add the following line on top of the file to make it clear:
/* This header implements atomic operation primitives for MSVC
 * on x86 (32 bit). */

(I haven't tried building 64 bit builds to test otherwise. Visual
studio by default builds 32 build applications on 64 bit processors
too. It is a little work to make it build 64 bit applications.)

> I think that many of the macros should more carefully parenthesize
> their argument expansions.  Here are three examples but I see others:

I haven't used macros extensively before to understand the pitfalls well.
You mean, I should be doing this:
*(DST) = *(SRC);
instead of:
*DST = *SRC right?

I agree with all the other comments and will incorporate them.


More information about the dev mailing list