meaning of 64bit: not only large memory, but large atomic integer

Robert Jacques sandford at jhu.edu
Wed Jan 7 09:59:47 PST 2009


On Wed, 07 Jan 2009 10:47:03 -0500, redsea <redsea at 163.com> wrote:

> When I implement some high performance program in linux 32bit, 32bit  
> atomic if often not sufficient, for example, If I want to hold a index &  
> a timestamp to a atomic variable, 32bit is not enough,  in 64bit  
> environment, I can do that.
>
No you can't. On pretty much all 32-bit systems the double wide Compare  
and Swap operation is availible, which allows you to use the index + tag  
method to advoid the ABA problem. However, a decent number of 64-bit  
systems don't support this operation leaving the vast majority of  
lock-free algorithms high and dry. (While there are high order bits you  
could hide a tag in, kernel developers are already using them for OS  
stuff). Of course, if you're referring to indexing into an array, you can  
use two shorts, etc. on 32-bit machines for much the same effect.





More information about the Digitalmars-d mailing list