Fw: [patch] Make std::tr1::shared_ptr thread-safe.

Peter Dimov pdimov@mmltd.net
Sat Apr 2 16:37:00 GMT 2005


Alexander Terekhov wrote:

> On Apr 2, 2005 12:33 AM, Paolo Carlini <pcarlini@suse.de> wrote:
>> Thanks Jonathan! If nobody finds even more subtle problems ;),
>> tomorrow morning I will regtest it on a couple different
>> multiprocessor machines.
>
> Itanic stuff that was posted here contained nothing having anything
> to do with memory syncronization AFAICS. The rest of exchange_and_add()
> stuff was totally busted (WRT reference counting and msync) as well.

I can't read IA64 but the disassembly looks like __exchange_and_add without 
the intrinsic inlined; it just shuffles registers around and calls something 
else. It doesn't even have an add instruction. It's as if the compiler 
didn't recognize the instrinsic. Could this be caused by a missing #include 
<ia64intrin.h>? Or perhaps the intrinsic has generated an out of line 
function that Paolo didn't show us? 



More information about the Libstdc++ mailing list