diff options
Diffstat (limited to 'src/bin/pgbench/pgbench.c')
-rw-r--r-- | src/bin/pgbench/pgbench.c | 11 |
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 * |