On Tuesday 22 February 2011 09:59:21 Marti Raudsepp wrote:
> On Tue, Feb 22, 2011 at 07:38, Fujii Masao <masao.fu...@gmail.com> wrote:
> > +       SpinLockAcquire(&WalSndCtl->ctlmutex);
> > +       result = WalSndCtl->sync_rep_service_available;
> > +       SpinLockRelease(&WalSndCtl->ctlmutex);
> > 
> > volatile pointer needs to be used to prevent code rearrangement.
> 
> I don't think that's necessary. Spinlock functions already prevent
> reordering using __asm__ __volatile__
> 
> Otherwise, surely they would be utterly broken?
Its not the spinlock thats the problem but that "result" may be already loaded 
into a register. Thats not prohibited by __asm__ __volatile__.

Andres

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to