Re: elog(DEBUG2 in SpinLocked section.
От | Tom Lane |
---|---|
Тема | Re: elog(DEBUG2 in SpinLocked section. |
Дата | |
Msg-id | 1187869.1591235853@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: elog(DEBUG2 in SpinLocked section. (Michael Paquier <michael@paquier.xyz>) |
Список | pgsql-hackers |
Michael Paquier <michael@paquier.xyz> writes: > On Wed, Jun 03, 2020 at 12:36:34AM -0400, Tom Lane wrote: >> Should we think about adding automated detection of this type of >> mistake? I don't like the attached as-is because of the #include >> footprint expansion, but maybe we can find a better way. > I think that this one first boils down to the FRONTEND dependency in > those headers. Or in short, spin.h may get loaded by the frontend but > we have a backend-only API, no? I think the #include bloat comes from wanting to declare the global state variable as "slock_t *". We could give up on that and write something like this in a central place like c.h: #if defined(USE_ASSERT_CHECKING) && !defined(FRONTEND) extern void *held_spinlock; #define NotHoldingSpinLock() Assert(held_spinlock == NULL) #else #define NotHoldingSpinLock() ((void) 0) #endif Then throwing NotHoldingSpinLock() into relevant places costs nothing new include-wise. regards, tom lane
В списке pgsql-hackers по дате отправления: