mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
Register atexit hook only once in pg_upgrade.
start_postmaster() registered stop_postmaster_atexit as an atexit(3) callback each time through, although the obvious intention was to do so only once per program run. The extra registrations were harmless, so long as we didn't exceed ATEXIT_MAX, but still it's a bug. Artur Zakirov, with bikeshedding by Kyotaro Horiguchi and me Discussion: <d279e817-02b5-caa6-215f-cfb05dce109a@postgrespro.ru>
This commit is contained in:
parent
087ac1dc60
commit
8b018cb1f9
@ -174,10 +174,11 @@ start_postmaster(ClusterInfo *cluster, bool throw_error)
|
|||||||
{
|
{
|
||||||
char cmd[MAXPGPATH * 4 + 1000];
|
char cmd[MAXPGPATH * 4 + 1000];
|
||||||
PGconn *conn;
|
PGconn *conn;
|
||||||
bool exit_hook_registered = false;
|
|
||||||
bool pg_ctl_return = false;
|
bool pg_ctl_return = false;
|
||||||
char socket_string[MAXPGPATH + 200];
|
char socket_string[MAXPGPATH + 200];
|
||||||
|
|
||||||
|
static bool exit_hook_registered = false;
|
||||||
|
|
||||||
if (!exit_hook_registered)
|
if (!exit_hook_registered)
|
||||||
{
|
{
|
||||||
atexit(stop_postmaster_atexit);
|
atexit(stop_postmaster_atexit);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user