diff options
Diffstat (limited to 'src/bin/pg_dump/pg_dump.c')
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 4545f97a63d..14389bd0d37 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -144,7 +144,6 @@ static int serializable_deferrable = 0; static void help(const char *progname); -static void pgdump_cleanup_at_exit(int code, void *arg); static void setup_connection(Archive *AH, const char *dumpencoding, char *use_role); static ArchiveFormat parseArchiveFormat(const char *format, ArchiveMode *mode); @@ -575,7 +574,9 @@ main(int argc, char **argv) /* Open the output file */ fout = CreateArchive(filename, archiveFormat, compressLevel, archiveMode); - on_exit_nicely(pgdump_cleanup_at_exit, fout); + + /* Register the cleanup hook */ + on_exit_close_archive(fout); if (fout == NULL) exit_horribly(NULL, "could not open output file \"%s\" for writing\n", filename); @@ -837,14 +838,6 @@ help(const char *progname) } static void -pgdump_cleanup_at_exit(int code, void *arg) -{ - Archive *AH = (Archive *) arg; - - DisconnectDatabase(AH); -} - -static void setup_connection(Archive *AH, const char *dumpencoding, char *use_role) { PGconn *conn = GetConnection(AH); |