<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
><span style="font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 15px; background-color: rgb(255, 255, 255); display: inline !important">Are you sure we shouldn't
 be marking these as atomic instead of volatile? Volatile is usually not suitable for anything except  </span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I am implementing <atomic> <span id="🙂" title=":slight_smile:">🙂</span></div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Billy3</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Reid Kleckner <rnk@google.com><br>
<b>Sent:</b> Thursday, March 28, 2019 02:27 PM<br>
<b>To:</b> Billy O'Neal (VC LIBS)<br>
<b>Cc:</b> JF Bastien; cfe-dev<br>
<b>Subject:</b> Re: [cfe-dev] FYI, Intel folks might be looking to add the __iso_volatile_Xxx family for MSVC STL <atomic> soon</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">On Thu, Mar 28, 2019 at 2:20 PM Billy O'Neal (VC LIBS) <<a href="mailto:bion@microsoft.com">bion@microsoft.com</a>> wrote:<br>
</div>
<div class="x_gmail_quote">
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
> <span style="font-size:15px; background-color:rgb(255,255,255); display:inline">all they do is emit a volatile load</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-size:15px; background-color:rgb(255,255,255); display:inline"><br>
</span></div>
<div style="color:rgb(0,0,0)"><span style="font-size:15px">If I understand correctly the point of these is to make an ordinary volatile load/store happen on ARM under
<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fcpp%2Fbuild%2Freference%2Fvolatile-volatile-keyword-interpretation%3Fview%3Dvs-2017&data=02%7C01%7Cbion%40microsoft.com%7C2c2e5799b30c43c1581408d6b3c42699%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636894052372924502&sdata=%2BN7Js4HfLK8XWiBdtQO5pOxI8FC2EduXL2Icg%2FApzMo%3D&reserved=0" originalsrc="https://docs.microsoft.com/en-us/cpp/build/reference/volatile-volatile-keyword-interpretation?view=vs-2017" shash="xt0tnzLIOtHwIxxau56j/MLa/gvW3fs1XrLtAQx7bsCzs04WAZSN4jYK9e/vm2dNvGWdSVj6f0ylxpre5QJxSK5MCWCRgXtEZx91QERVjmftfhtSderyaz1c0AvIkr8SrTgR2qAvESLgKp8pK7TaM5SNF3yWCvWBKxNfj3mVmr0=" title="https://docs.microsoft.com/en-us/cpp/build/reference/volatile-volatile-keyword-interpretation?view=vs-2017" target="_blank">
/volatile:ms</a>. We asked for the intrinsic to also be provided on Intel because it reduces the amount of macro-tastic-ness we need in <atomic>.</span></div>
</div>
</blockquote>
<div><br>
</div>
<div>That makes sense, but I'm left wondering in what context a plain volatile load is useful for implementing <atomic>. I went in assuming that, to implement atomic, you need to use intrinsics to emit atomic memory operations.</div>
<div><br>
</div>
<div>Are you sure we shouldn't be marking these as atomic instead of volatile? Volatile is usually not suitable for anything except  </div>
</div>
</div>
</div>
</body>
</html>