From 23d1c5cab09313d0cd2884672b7b1533d2df66c6 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Tue, 13 Oct 2020 12:30:45 +0000 Subject: [PATCH] bugs-4570 --- CMakeLists.txt | 2 +- modules/chain/dap_chain_ledger.c | 10 +++++----- modules/chain/include/dap_chain_ledger.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b754dc7b39..532b88b29e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.6-14") +set(CELLFRAME_SDK_NATIVE_VERSION "2.6-15") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c index f96ad62b39..0a6d53a743 100644 --- a/modules/chain/dap_chain_ledger.c +++ b/modules/chain/dap_chain_ledger.c @@ -365,7 +365,7 @@ static void s_treshold_txs_proc( dap_ledger_t *a_ledger) l_success = false; dap_chain_ledger_tx_item_t *l_tx_item, *l_tx_tmp; HASH_ITER(hh, PVT(a_ledger)->treshold_txs, l_tx_item, l_tx_tmp) { - int l_res = dap_chain_ledger_tx_add(a_ledger, l_tx_item->tx); + int l_res = dap_chain_ledger_tx_add(a_ledger, l_tx_item->tx, true); if (l_res == 1) { pthread_rwlock_wrlock(&PVT(a_ledger)->treshold_txs_rwlock); HASH_DEL(PVT(a_ledger)->treshold_txs, l_tx_item); @@ -1260,7 +1260,7 @@ int dap_chain_ledger_balance_cache_update(dap_ledger_t *a_ledger, dap_ledger_wal * * return 1 OK, -1 error */ -int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx) +int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, bool a_from_threshold) { if(!a_tx){ log_it(L_ERROR, "NULL tx detected"); @@ -1550,8 +1550,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx) DAP_DELETE(l_tx_cache); } DAP_DELETE(l_gdb_group); - - s_treshold_txs_proc(a_ledger); + if (!a_from_threshold) + s_treshold_txs_proc(a_ledger); ret = 1; } FIN: @@ -1562,7 +1562,7 @@ FIN: int dap_chain_ledger_tx_load(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx) { if (PVT(a_ledger)->last_tx.found && PVT(a_ledger)->last_thres_tx.found) { - return dap_chain_ledger_tx_add(a_ledger, a_tx); + return dap_chain_ledger_tx_add(a_ledger, a_tx, false); } else { dap_chain_hash_fast_t l_tx_hash = {}; dap_hash_fast(a_tx, dap_chain_datum_tx_get_size(a_tx), &l_tx_hash); diff --git a/modules/chain/include/dap_chain_ledger.h b/modules/chain/include/dap_chain_ledger.h index 252ea15478..81f182638b 100644 --- a/modules/chain/include/dap_chain_ledger.h +++ b/modules/chain/include/dap_chain_ledger.h @@ -97,7 +97,7 @@ DAP_STATIC_INLINE char *dap_chain_ledger_get_gdb_group(dap_ledger_t *a_ledger, c * * return 1 OK, -1 error */ -int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx); +int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, bool a_from_threshold); int dap_chain_ledger_tx_load(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx); -- GitLab