aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pgbench/pgbench.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pgbench/pgbench.c')
-rw-r--r--src/bin/pgbench/pgbench.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 436764b9c91..81bc6d8a6e3 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -4931,6 +4931,8 @@ main(int argc, char **argv)
PGresult *res;
char *env;
+ int exit_code = 0;
+
progname = get_progname(argv[0]);
if (argc > 1)
@@ -5675,6 +5677,10 @@ main(int argc, char **argv)
(void) threadRun(thread);
#endif /* ENABLE_THREAD_SAFETY */
+ for (int j = 0; j < thread->nstate; j++)
+ if (thread->state[j].state == CSTATE_ABORTED)
+ exit_code = 2;
+
/* aggregate thread level stats */
mergeSimpleStats(&stats.latency, &thread->stats.latency);
mergeSimpleStats(&stats.lag, &thread->stats.lag);
@@ -5699,7 +5705,10 @@ main(int argc, char **argv)
INSTR_TIME_SUBTRACT(total_time, start_time);
printResults(threads, &stats, total_time, conn_total_time, latency_late);
- return 0;
+ if (exit_code != 0)
+ fprintf(stderr, "Run was aborted; the above results are incomplete.\n");
+
+ return exit_code;
}
static void *