From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 8E18E445326 for ; Wed, 15 Jul 2020 16:55:38 +0300 (MSK) Received: by smtpng3.m.smailru.net with esmtpa (envelope-from ) id 1jvhso-0002ht-7B for tarantool-patches@dev.tarantool.org; Wed, 15 Jul 2020 16:55:38 +0300 From: Aleksandr Lyapunov Date: Wed, 15 Jul 2020 16:55:28 +0300 Message-Id: <1594821336-14468-6-git-send-email-alyapunov@tarantool.org> In-Reply-To: <1594821336-14468-1-git-send-email-alyapunov@tarantool.org> References: <1594821336-14468-1-git-send-email-alyapunov@tarantool.org> Subject: [Tarantool-patches] [PATCH v3 05/13] txm: save txn in txn_stmt List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org There is a lot of places in transaction engine (see futher commits) where it's convenient to store just a pointer to tx statement while having a way to get the transaction itself by this pointer. Let's store a pointer to TX in TX statement for that purpose. Part of #4897 --- src/box/txn.c | 1 + src/box/txn.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/box/txn.c b/src/box/txn.c index 287f352..62b91d6 100644 --- a/src/box/txn.c +++ b/src/box/txn.c @@ -109,6 +109,7 @@ txn_stmt_new(struct region *region) } /* Initialize members explicitly to save time on memset() */ + stmt->txn = in_txn(); stmt->space = NULL; stmt->old_tuple = NULL; stmt->new_tuple = NULL; diff --git a/src/box/txn.h b/src/box/txn.h index c1f06db..36b1a03 100644 --- a/src/box/txn.h +++ b/src/box/txn.h @@ -129,6 +129,8 @@ struct txn_stmt { /** A linked list of all statements. */ struct stailq_entry next; + /** Owner of that statement. */ + struct txn *txn; /** Undo info. */ struct space *space; struct tuple *old_tuple; -- 2.7.4