*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.180 2004/08/28 20:31:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.181 2004/08/28 22:04:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
* necessary but we may as well do it while we are here.
*
* The ordering here isn't critical but it seems best to mark the
- * parent last. That reduces the chance that concurrent
- * TransactionIdDidAbort calls will decide they need to do redundant
- * work.
+ * parent first. This assures an atomic transition of all the
+ * subtransactions to aborted state from the point of view of
+ * concurrent TransactionIdDidAbort calls.
*/
- TransactionIdAbortTree(nchildren, children);
TransactionIdAbort(xid);
+ TransactionIdAbortTree(nchildren, children);
END_CRIT_SECTION();
}
* Mark the transaction aborted in clog. This is not absolutely
* necessary but we may as well do it while we are here.
*/
- TransactionIdAbortTree(nchildren, children);
TransactionIdAbort(xid);
+ TransactionIdAbortTree(nchildren, children);
END_CRIT_SECTION();
}