summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/pgbench/pgbench.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index e5510fb830b..807d7dcdb8d 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -211,6 +211,7 @@ typedef struct
Variable *variables; /* array of variable definitions */
int nvariables;
int64 txn_scheduled; /* scheduled start time of transaction (usec) */
+ int64 sleep_until; /* scheduled start time of next cmd (usec) */
instr_time txn_begin; /* used for measuring schedule lag times */
instr_time stmt_begin; /* used for measuring statement latencies */
int64 txn_latencies; /* cumulated latencies */
@@ -967,6 +968,7 @@ top:
thread->throttle_trigger += wait;
st->txn_scheduled = thread->throttle_trigger;
+ st->sleep_until = st->txn_scheduled;
st->sleeping = 1;
st->throttling = true;
st->is_throttled = true;
@@ -982,7 +984,7 @@ top:
INSTR_TIME_SET_CURRENT(now);
now_us = INSTR_TIME_GET_MICROSEC(now);
- if (st->txn_scheduled <= now_us)
+ if (st->sleep_until <= now_us)
{
st->sleeping = 0; /* Done sleeping, go ahead with next command */
if (st->throttling)
@@ -1599,7 +1601,7 @@ top:
usec *= 1000000;
INSTR_TIME_SET_CURRENT(now);
- st->txn_scheduled = INSTR_TIME_GET_MICROSEC(now) + usec;
+ st->sleep_until = INSTR_TIME_GET_MICROSEC(now) + usec;
st->sleeping = 1;
st->listen = 1;