From: Amit Kapila Date: Tue, 2 Nov 2021 03:40:17 +0000 (+0530) Subject: Move MarkCurrentTransactionIdLoggedIfAny() out of the critical section. X-Git-Tag: REL_15_BETA1~1263 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=335397456b7e3f9f619038cb322fbfc9dd649d4f;p=thirdparty%2Fpostgresql.git Move MarkCurrentTransactionIdLoggedIfAny() out of the critical section. We don't modify any shared state in this function which could cause problems for any concurrent session. This will make it look similar to the other updates for the same structure (TransactionState) which avoids confusion for future readers of code. Author: Dilip Kumar Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/E1mSoYz-0007Fh-D9@gemulon.postgresql.org --- diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 6aca1fd75d9..0a0771a18eb 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -1169,10 +1169,10 @@ XLogInsertRecord(XLogRecData *rdata, */ WALInsertLockRelease(); - MarkCurrentTransactionIdLoggedIfAny(); - END_CRIT_SECTION(); + MarkCurrentTransactionIdLoggedIfAny(); + /* * Mark top transaction id is logged (if needed) so that we should not try * to log it again with the next WAL record in the current subtransaction.