From: | Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: LW_SHARED_MASK macro |
Date: | 2015-09-21 19:34:46 |
Message-ID: | CAPpHfduF600zdV_O_ySsNVWtY9P-LGocnUM00DVf53AtAAgZog@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Sep 17, 2015 at 5:38 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2015-09-17 14:35:20 +0300, Alexander Korotkov wrote:
> > while exploring lwlock.c I found following macro to be strange.
> >
> > #define LW_SHARED_MASK ((uint32)(1 << 23))
> >
> > This is macro is used to extract number of shared locks from state.
> >
> > ereport(LOG,
> > (errhidestmt(true),
> > errhidecontext(true),
> > errmsg("%d: %s(%s): excl %u shared %u haswaiters %u waiters %u rOK %d",
> > MyProcPid,
> > where, MainLWLockNames[id],
> > !!(state & LW_VAL_EXCLUSIVE),
> > state & LW_SHARED_MASK,
> > !!(state & LW_FLAG_HAS_WAITERS),
> > pg_atomic_read_u32(&lock->nwaiters),
> > !!(state & LW_FLAG_RELEASE_OK))));
> >
> >
> > Should it be ((uint32) ((1 << 24)-1)) instead?
>
> Argh, that's somewhat embarassing. You're absolutely right. Luckily it's
> only used for LOCK_DEBUG, but still...
>
Great. BTW, are you going to commit this?
------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2015-09-21 19:36:15 | Re: LW_SHARED_MASK macro |
Previous Message | Alvaro Herrera | 2015-09-21 19:16:02 | COPY planning |