On 10/29/06, Colin <[EMAIL PROTECTED]> wrote:
Unfortunately I don't have access to a Solaris 10 machine, so this patch is untested (I will be able to test all subsequent patches though ;-)
I have Sol10 machines. =)
Changes to the Solaris 10 specific functions - Fixed atomic_set_32 by adding an appropriate memory barrier.
This doesn't make a whole lot of sense. Just by calling apr_atomic_read32(), we get a memory barrier which is only released by apr_atomic_set32(). Why does reading an atomic mean that no one else can update it ever? What happens if we call a read() without a set()? At what other point would it be unlocked?
- Added missing implementations for atomic_read32, atomic_add32, atomic_sub32 and atomic_casptr.
These look fine, AFAICT.
- Moved #include <atomic.h> into the Solaris 10 section; prevents redundant include if generic implementation is used.
*nod*
- Fixed atomic_dec_32 and atomic_inc_32; the old versions were NOT actually atomic because (a) there was no guarantee that *mem was not changed between reding the value and performing the atomic update, and (b) the read itself was not preceeded by an appropriate memory barrier.
*nod* -- justin
