diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 92b263a..e09ed67 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2138,7 +2138,7 @@ CommitTransaction(void) AtEOXact_HashTables(true); AtEOXact_PgStat(true); AtEOXact_Snapshot(true, false); - AtCommit_ApplyLauncher(); + AtEOXact_ApplyLauncher(true); pgstat_report_xact_timestamp(0); CurrentResourceOwner = NULL; @@ -2612,6 +2612,7 @@ AbortTransaction(void) AtEOXact_ComboCid(); AtEOXact_HashTables(false); AtEOXact_PgStat(false); + AtEOXact_ApplyLauncher(false); pgstat_report_xact_timestamp(0); } diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index 2d663f6..d51629b 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -614,13 +614,17 @@ ApplyLauncherShmemInit(void) } /* + * AtEOXact_ApplyLauncher + * * Wakeup the launcher on commit if requested. */ void -AtCommit_ApplyLauncher(void) +AtEOXact_ApplyLauncher(bool isCommit) { - if (on_commit_launcher_wakeup) + if (isCommit && on_commit_launcher_wakeup) ApplyLauncherWakeup(); + + on_commit_launcher_wakeup = false; } /* diff --git a/src/include/replication/logicallauncher.h b/src/include/replication/logicallauncher.h index 060946a..8ad5798 100644 --- a/src/include/replication/logicallauncher.h +++ b/src/include/replication/logicallauncher.h @@ -23,6 +23,6 @@ extern void ApplyLauncherShmemInit(void); extern void ApplyLauncherWakeup(void); extern void ApplyLauncherWakeupAtCommit(void); -extern void AtCommit_ApplyLauncher(void); +extern void AtEOXact_ApplyLauncher(bool isCommit); #endif /* LOGICALLAUNCHER_H */