pgbench: consolidate a few PQfinish calls.
authorAndres Freund <andres@anarazel.de>
Thu, 1 Mar 2018 09:02:57 +0000 (01:02 -0800)
committerAndres Freund <andres@anarazel.de>
Thu, 1 Mar 2018 09:02:57 +0000 (01:02 -0800)
Author: Doug Rady
Discussion: https://postgr.es/m/6323D83C-9FDA-4EE1-B0ED-6971E585066A@amazon.com

src/bin/pgbench/pgbench.c

index d4209421f50afd145ffb61ddc16937ed719224d3..5c07dd9ca5ea629d778ed8cc90b4cf483fd8682e 100644 (file)
@@ -502,6 +502,7 @@ static void pgbench_error(const char *fmt,...) pg_attribute_printf(1, 2);
 static void addScript(ParsedScript script);
 static void *threadRun(void *arg);
 static void setalarm(int seconds);
+static void finishCon(CState *st);
 
 
 /* callback functions for our flex lexer */
@@ -2982,8 +2983,7 @@ doCustom(TState *thread, CState *st, StatsData *agg)
 
                if (is_connect)
                {
-                   PQfinish(st->con);
-                   st->con = NULL;
+                   finishCon(st);
                    INSTR_TIME_SET_ZERO(now);
                }
 
@@ -3020,11 +3020,7 @@ doCustom(TState *thread, CState *st, StatsData *agg)
                 */
            case CSTATE_ABORTED:
            case CSTATE_FINISHED:
-               if (st->con != NULL)
-               {
-                   PQfinish(st->con);
-                   st->con = NULL;
-               }
+               finishCon(st);
                return;
        }
    }
@@ -3172,13 +3168,7 @@ disconnect_all(CState *state, int length)
    int         i;
 
    for (i = 0; i < length; i++)
-   {
-       if (state[i].con)
-       {
-           PQfinish(state[i].con);
-           state[i].con = NULL;
-       }
-   }
+       finishCon(&state[i]);
 }
 
 /*
@@ -5266,8 +5256,7 @@ threadRun(void *arg)
            {
                /* interrupt client that has not started a transaction */
                st->state = CSTATE_FINISHED;
-               PQfinish(st->con);
-               st->con = NULL;
+               finishCon(st);
                remains--;
            }
            else if (st->state == CSTATE_SLEEP || st->state == CSTATE_THROTTLE)
@@ -5547,6 +5536,16 @@ done:
    return NULL;
 }
 
+static void
+finishCon(CState *st)
+{
+   if (st->con != NULL)
+   {
+       PQfinish(st->con);
+       st->con = NULL;
+   }
+}
+
 /*
  * Support for duration option: set timer_exceeded after so many seconds.
  */