From e47dfae9fbe813ae5e4f7ede9f66139a621c5a8b Mon Sep 17 00:00:00 2001
From: Roman Khlopkov <roman.khlopkov@demlabs.net>
Date: Thu, 16 Sep 2021 06:46:37 +0300
Subject: [PATCH] [*] A little stability fix

---
 modules/channel/chain/dap_stream_ch_chain.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c
index 00e39dca2b..05a1e9c167 100644
--- a/modules/channel/chain/dap_stream_ch_chain.c
+++ b/modules/channel/chain/dap_stream_ch_chain.c
@@ -265,7 +265,10 @@ static void s_sync_out_chains_last_worker_callback(dap_worker_t *a_worker, void
             l_sync_request->request_hdr.net_id.uint64, l_sync_request->request_hdr.chain_id.uint64,
             l_sync_request->request_hdr.cell_id.uint64, &l_request, sizeof(l_request));
     if (l_ch_chain->request_atom_iter)
+    {
         l_ch_chain->request_atom_iter->chain->callback_atom_iter_delete(l_ch_chain->request_atom_iter);
+        l_ch_chain->request_atom_iter = NULL;
+    }
 
     l_ch_chain->state = CHAIN_STATE_IDLE;
     if (l_ch_chain->callback_notify_packet_out)
@@ -595,10 +598,6 @@ static void s_gdb_sync_tsd_worker_callback(dap_worker_t *a_worker, void *a_arg)
         memcpy(l_data_ptr, &l_sync_request->request.id_end, sizeof(uint64_t));
         l_data_ptr += sizeof(uint64_t);
         memcpy(l_data_ptr, l_sync_request->gdb.sync_group, l_gr_len);
-        log_it(L_INFO, "Allocated %d bytes, copied %d bytes, sent %d bytes",
-               l_data_size + sizeof(dap_tsd_t),
-               (long int)((byte_t *)l_data_ptr - l_tsd_rec->data) + l_gr_len,
-               l_tsd_rec->size + sizeof(dap_tsd_t));
         dap_stream_ch_chain_pkt_write_unsafe(l_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_UPDATE_GLOBAL_DB_TSD,
                                              l_sync_request->request_hdr.net_id.uint64,
                                              l_sync_request->request_hdr.chain_id.uint64,
@@ -1298,14 +1297,10 @@ void dap_stream_ch_chain_go_idle ( dap_stream_ch_chain_t * a_ch_chain)
     // Cleanup after request
     memset(&a_ch_chain->request, 0, sizeof(a_ch_chain->request));
     memset(&a_ch_chain->request_hdr, 0, sizeof(a_ch_chain->request_hdr));
-    if(a_ch_chain->request_atom_iter) {
-        if(a_ch_chain->request_atom_iter->chain)
-            if(a_ch_chain->request_atom_iter->chain->callback_atom_iter_delete){
+    if (a_ch_chain->request_atom_iter && a_ch_chain->request_atom_iter->chain &&
+            a_ch_chain->request_atom_iter->chain->callback_atom_iter_delete) {
                 a_ch_chain->request_atom_iter->chain->callback_atom_iter_delete(a_ch_chain->request_atom_iter);
                 a_ch_chain->request_atom_iter = NULL;
-                return;
-            }
-        a_ch_chain->request_atom_iter->chain->callback_atom_iter_delete(a_ch_chain->request_atom_iter);
     }
     // free log list
     dap_db_log_list_delete(a_ch_chain->request_db_log);
-- 
GitLab