[Tarantool-patches] [PATCH 4/5] qsync: txn_commit -- use txn flag instead of caching variable
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Fri Jul 10 23:36:32 MSK 2020
On 10/07/2020 09:56, Cyrill Gorcunov wrote:
> All over the code (including txn_libmo) we use txn_has_flag
> helper, lets do the same here. There is no need for a separate
> variable. It simply confuses (note though that sometimes such
> trick is used to fetch current value of some variable which
> might be changed externally but this is not out case we rely
> on single thread here).
>
> I also added a few empty lines to separate logical code blocks
> for better readability.
>
> Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
> ---
> src/box/txn.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/src/box/txn.c b/src/box/txn.c
> index 613eb7aef..feb9a10c6 100644
> --- a/src/box/txn.c
> +++ b/src/box/txn.c
> @@ -811,8 +811,7 @@ txn_commit(struct txn *txn)
> return -1;
> }
>
> - bool is_sync = txn_has_flag(txn, TXN_WAIT_SYNC);
> - if (is_sync) {
> + if (txn_has_flag(txn, TXN_WAIT_SYNC)) {
Здесь это сохранено в переменную не просто так. А
как раз за тем, чтобы не вычитывать флаг заново на каждый иф.
Не надо это менять плиз.
> /*
> * Remote rows, if any, come before local rows, so
> * check for originating instance id here.
> @@ -834,7 +833,7 @@ txn_commit(struct txn *txn)
>
> fiber_set_txn(fiber(), NULL);
> if (journal_write(req) != 0) {
> - if (is_sync)
> + if (txn_has_flag(txn, TXN_WAIT_SYNC))
> txn_limbo_abort(&txn_limbo, limbo_entry);
> fiber_set_txn(fiber(), txn);
> txn_rollback(txn);
> @@ -844,7 +843,8 @@ txn_commit(struct txn *txn)
> diag_log();
> return -1;
> }
> - if (is_sync) {
> +
> + if (txn_has_flag(txn, TXN_WAIT_SYNC)) {
> if (txn_has_flag(txn, TXN_WAIT_ACK)) {
> int64_t lsn = req->rows[req->n_rows - 1]->lsn;
> txn_limbo_assign_local_lsn(&txn_limbo, limbo_entry,
> @@ -857,6 +857,7 @@ txn_commit(struct txn *txn)
> return -1;
> }
> }
> +
> if (!txn_has_flag(txn, TXN_IS_DONE)) {
> txn->signature = req->res;
> txn_complete(txn);
>
More information about the Tarantool-patches
mailing list