PostgreSQL Source Code  git master
instr_time.h File Reference
#include <sys/time.h>
Include dependency graph for instr_time.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define INSTR_TIME_IS_ZERO(t)   ((t).tv_usec == 0 && (t).tv_sec == 0)
 
#define INSTR_TIME_SET_ZERO(t)   ((t).tv_sec = 0, (t).tv_usec = 0)
 
#define INSTR_TIME_SET_CURRENT(t)   gettimeofday(&(t), NULL)
 
#define INSTR_TIME_ADD(x, y)
 
#define INSTR_TIME_SUBTRACT(x, y)
 
#define INSTR_TIME_ACCUM_DIFF(x, y, z)
 
#define INSTR_TIME_GET_DOUBLE(t)   (((double) (t).tv_sec) + ((double) (t).tv_usec) / 1000000.0)
 
#define INSTR_TIME_GET_MILLISEC(t)   (((double) (t).tv_sec * 1000.0) + ((double) (t).tv_usec) / 1000.0)
 
#define INSTR_TIME_GET_MICROSEC(t)   (((uint64) (t).tv_sec * (uint64) 1000000) + (uint64) (t).tv_usec)
 
#define INSTR_TIME_SET_CURRENT_LAZY(t)   (INSTR_TIME_IS_ZERO(t) ? INSTR_TIME_SET_CURRENT(t), true : false)
 

Typedefs

typedef struct timeval instr_time
 

Macro Definition Documentation

◆ INSTR_TIME_ACCUM_DIFF

#define INSTR_TIME_ACCUM_DIFF (   x,
  y,
 
)
Value:
do { \
(x).tv_sec += (y).tv_sec - (z).tv_sec; \
(x).tv_usec += (y).tv_usec - (z).tv_usec; \
/* Normalize after each add to avoid overflow/underflow of tv_usec */ \
while ((x).tv_usec < 0) \
{ \
(x).tv_usec += 1000000; \
(x).tv_sec--; \
} \
while ((x).tv_usec >= 1000000) \
{ \
(x).tv_usec -= 1000000; \
(x).tv_sec++; \
} \
} while (0)

Definition at line 182 of file instr_time.h.

Referenced by advanceConnectionState(), BufferUsageAccumDiff(), InstrStopNode(), llvm_compile_expr(), llvm_compile_module(), and threadRun().

◆ INSTR_TIME_ADD

#define INSTR_TIME_ADD (   x,
 
)
Value:
do { \
(x).tv_sec += (y).tv_sec; \
(x).tv_usec += (y).tv_usec; \
/* Normalize */ \
while ((x).tv_usec >= 1000000) \
{ \
(x).tv_usec -= 1000000; \
(x).tv_sec++; \
} \
} while (0)

Definition at line 158 of file instr_time.h.

Referenced by BufferUsageAdd(), ExplainPrintJIT(), FlushBuffer(), InstrAggNode(), InstrJitAgg(), main(), pgstat_end_function_usage(), and ReadBuffer_common().

◆ INSTR_TIME_GET_DOUBLE

#define INSTR_TIME_GET_DOUBLE (   t)    (((double) (t).tv_sec) + ((double) (t).tv_usec) / 1000000.0)

◆ INSTR_TIME_GET_MICROSEC

#define INSTR_TIME_GET_MICROSEC (   t)    (((uint64) (t).tv_sec * (uint64) 1000000) + (uint64) (t).tv_usec)

◆ INSTR_TIME_GET_MILLISEC

◆ INSTR_TIME_IS_ZERO

#define INSTR_TIME_IS_ZERO (   t)    ((t).tv_usec == 0 && (t).tv_sec == 0)

Definition at line 152 of file instr_time.h.

Referenced by InstrEndLoop(), InstrStopNode(), and show_buffer_usage().

◆ INSTR_TIME_SET_CURRENT

◆ INSTR_TIME_SET_CURRENT_LAZY

#define INSTR_TIME_SET_CURRENT_LAZY (   t)    (INSTR_TIME_IS_ZERO(t) ? INSTR_TIME_SET_CURRENT(t), true : false)

◆ INSTR_TIME_SET_ZERO

#define INSTR_TIME_SET_ZERO (   t)    ((t).tv_sec = 0, (t).tv_usec = 0)

◆ INSTR_TIME_SUBTRACT

#define INSTR_TIME_SUBTRACT (   x,
 
)

Typedef Documentation

◆ instr_time

typedef struct timeval instr_time

Definition at line 150 of file instr_time.h.