
Boris Gubenko wrote:
Hi Markus,
Thank you for continuing to support Boost on Tru64.
I've asked Rich Peterson to review your implementation. I don't know yet when (and if) Rich will be able to do it.
That would be really great if someone knowledgeable could review the implementation.
I think
#elif defined(__osf__)
should be:
#elif defined(__osf__) && defined(__DECCXX)
to not break compilation with gcc.
You are right. I will add it.
I'm a bit surprised you did not use __ATOMIC_EXCH_LONG in atomic_write32().
Two reasons. 1) I didn't think of it. 2) The guarantees given by volatile seemed OK. Do you think I should change it to use __ATOMIC_EXCH_LONG?
I'm also not sure why you decided to implement atomic_cas32() in asm language instead of using __CMP_STORE_LONG:
[...] Because cas32 returns the old value, but __CMP_STORE_LONG does not.
Anyway, Rich is an expert in this stuff and, hopefully, he will be able to review your implementation.
Looking forward to it. Markus