<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
  > Look in m3-libs/m3core/src/atomic/m3makefile for a record of what I found.<br><BR> <BR><a href="http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-libs/m3core/src/atomic/m3makefile?rev=1.14;content-type=text%2Fplain">http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-libs/m3core/src/atomic/m3makefile?rev=1.14;content-type=text%2Fplain</a><BR> <BR>confusing, but goodness:<BR><br> <BR>Almost anything anyone would want is supported.<BR> <BR><br> <BR>Except for ARMEL_LINUX:<BR> <BR><br>All targets support atomic INTEGER and REFANY.<BR> <BR><br>All LINUX targets support atomic for all types (8/16/32/64).<BR> <BR><br>All I386 targets support atomic for all types (8/16/32/64).<br>  This includes NT386 and probably I386_NT/I386_CYGWIN/I386_INTERIX.<BR> <BR><br>All 64bit targets support atomic for LONGINT (64).<BR><br> <BR>The missing stuff is generally in unfinished or unused targets.<br>PPC_DARWIN missing atomic LONGINT is the most glaring omission.<br>SPARc32_LINUX is next -- it should work as well as SPARc32_SOLARIS/SOLsun/SOLnu.<BR> <BR> <BR><br>Where not supported, there is pattern where you fallback to using a LOCK.<BR>I'd venture a guess that PA{32,64}_{HPUX,LINUX} also don't have good atomic support.<BR> <BR><br><meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

</style>
<BR><div dir="ltr"> > I checked in a test case. Can you look at it?</div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr"><a href="http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3tests/src/m3makefile?rev=1.105;content-type=text%2Fplain">http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3tests/src/m3makefile?rev=1.105;content-type=text%2Fplain</a></div><div dir="ltr"> </div><div dir="ltr"> => look for "atomic"</div><div dir="ltr"> </div><div dir="ltr"> => <a href="http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3tests/src/p2/p226/Main.m3?rev=1.10;content-type=text%2Fplain">http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3tests/src/p2/p226/Main.m3?rev=1.10;content-type=text%2Fplain</a></div> <BR>Shows how to use it all.<BR> <BR>It is disabled. Let's try it..<BR> <BR><br> - Jay<BR><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: dragisha@m3w.org; m3devel@elegosoft.com<br>Subject: RE: [M3devel] atomic operations in cm3<br>Date: Sat, 25 Feb 2012 02:24:14 +0000<br><br>


<meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

</style>
<div dir="ltr">
I checked in a test case. Can you look at it?<br>Yes it is possible.<br> <br> <br>I forget the details, but some operations do require locks on some targets.<br>There is an interface to determine if the target supports lock-free operation.<br> <br> <br>As long as you are only dealing in INTEGER or REFANY, I think you are ok across the board.<br> <br> <br>Some 32bit targets don't support 64bit atomtic, like Powerpc.<br>SPARC32 and x86 have supported 64bit atomic operations for a long time.<br>    Linux and Solaris kernels don't run on 32bit SPARC any longer, so 64bit instructions are available in 32bit usermode.<br>HPPA is problematic for all atomics I recall. The instruction set support is very limited.<br>Linux has good support somehow, something dependent on the kernel, but I don't know what gcc/HP-UX/OpenBSD/NetBSD story is.<br> <br> <br>Look in m3-libs/m3core/src/atomic/m3makefile for a record of what I found.<br> <br> <br>And ask Bing.<br> <br> <br> - Jay<br> <br><div><div id="ecxSkyDrivePlaceholder"></div>> From: dragisha@m3w.org<br>> Date: Fri, 24 Feb 2012 21:27:13 +0100<br>> To: m3devel@elegosoft.com<br>> Subject: [M3devel] atomic operations in cm3<br>> <br>> I cannot find any hint on how to make use of <subject>. What would I like is to communicate with worker threads without LOCK… Possible?<br>> <br>> TIA,<br>> dd<br>> <br></div>                                      </div></div>                                        </div></body>
</html>