mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-30 17:01:17 +02:00
instr_time.h: add INSTR_TIME_SET_CURRENT_LAZY
Sets the timestamp to current if not already set. Will acquire more callers momentarily. Author: Fabien Coelho Discussion: https://postgr.es/m/alpine.DEB.2.21.1808111104320.1705@lancre
This commit is contained in:
parent
7306d5e920
commit
6f7d02aa60
@ -62,13 +62,9 @@ InstrInit(Instrumentation *instr, int instrument_options)
|
||||
void
|
||||
InstrStartNode(Instrumentation *instr)
|
||||
{
|
||||
if (instr->need_timer)
|
||||
{
|
||||
if (INSTR_TIME_IS_ZERO(instr->starttime))
|
||||
INSTR_TIME_SET_CURRENT(instr->starttime);
|
||||
else
|
||||
elog(ERROR, "InstrStartNode called twice in a row");
|
||||
}
|
||||
if (instr->need_timer &&
|
||||
INSTR_TIME_SET_CURRENT_LAZY(instr->starttime))
|
||||
elog(ERROR, "InstrStartNode called twice in a row");
|
||||
|
||||
/* save buffer usage totals at node entry, if needed */
|
||||
if (instr->need_bufusage)
|
||||
|
@ -20,6 +20,9 @@
|
||||
*
|
||||
* INSTR_TIME_SET_CURRENT(t) set t to current time
|
||||
*
|
||||
* INSTR_TIME_SET_CURRENT_LAZY(t) set t to current time if t is zero,
|
||||
* evaluates to whether t changed
|
||||
*
|
||||
* INSTR_TIME_ADD(x, y) x += y
|
||||
*
|
||||
* INSTR_TIME_SUBTRACT(x, y) x -= y
|
||||
@ -245,4 +248,9 @@ GetTimerFrequency(void)
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
||||
/* same macro on all platforms */
|
||||
|
||||
#define INSTR_TIME_SET_CURRENT_LAZY(t) \
|
||||
(INSTR_TIME_IS_ZERO(t) ? INSTR_TIME_SET_CURRENT(t), true : false)
|
||||
|
||||
#endif /* INSTR_TIME_H */
|
||||
|
Loading…
Reference in New Issue
Block a user