[tarantool-patches] [PATCH v5 1/7] txn: unref statement at txn_free
Georgy Kirichenko
georgy at tarantool.org
Sat Jun 22 00:48:15 MSK 2019
Refactoring: put txn statement unref code into transaction free function.
---
src/box/txn.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/box/txn.c b/src/box/txn.c
index 7a2c8cdaf..9aa460f50 100644
--- a/src/box/txn.c
+++ b/src/box/txn.c
@@ -168,6 +168,10 @@ txn_new()
inline static void
txn_free(struct txn *txn)
{
+ struct txn_stmt *stmt;
+ stailq_foreach_entry(stmt, &txn->stmts, next)
+ txn_stmt_unref_tuples(stmt);
+
/* Truncate region up to struct txn size. */
region_truncate(&txn->region, sizeof(struct txn));
stailq_add(&txn_cache, &txn->in_txn_cache);
@@ -448,10 +452,6 @@ txn_commit(struct txn *txn)
panic("commit trigger failed");
}
- struct txn_stmt *stmt;
- stailq_foreach_entry(stmt, &txn->stmts, next)
- txn_stmt_unref_tuples(stmt);
-
fiber_set_txn(fiber(), NULL);
txn_free(txn);
return 0;
@@ -489,10 +489,6 @@ txn_rollback()
panic("rollback trigger failed");
}
- struct txn_stmt *stmt;
- stailq_foreach_entry(stmt, &txn->stmts, next)
- txn_stmt_unref_tuples(stmt);
-
/** Free volatile txn memory. */
fiber_gc();
fiber_set_txn(fiber(), NULL);
--
2.22.0
More information about the Tarantool-patches
mailing list