Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
cellframe-sdk
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Code
Merge requests
18
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cellframe
cellframe-sdk
Commits
d9302835
Commit
d9302835
authored
1 year ago
by
pavel.uhanov
Browse files
Options
Downloads
Patches
Plain Diff
[+] add s_stake_net_clear func
parent
5b833f79
No related branches found
No related tags found
2 merge requests
!1224
Features 8837
,
!1206
bugfix-9076_d
Pipeline
#28846
passed with stage
in 11 minutes and 21 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c
+34
-11
34 additions, 11 deletions
modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c
with
34 additions
and
11 deletions
modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c
+
34
−
11
View file @
d9302835
...
@@ -51,6 +51,10 @@ static void s_stake_updater_callback(dap_ledger_t *a_ledger, dap_chain_datum_tx_
...
@@ -51,6 +51,10 @@ static void s_stake_updater_callback(dap_ledger_t *a_ledger, dap_chain_datum_tx_
static
void
s_cache_data
(
dap_ledger_t
*
a_ledger
,
dap_chain_datum_tx_t
*
a_tx
,
dap_chain_addr_t
*
a_signing_addr
);
static
void
s_cache_data
(
dap_ledger_t
*
a_ledger
,
dap_chain_datum_tx_t
*
a_tx
,
dap_chain_addr_t
*
a_signing_addr
);
static
void
s_stake_clear
();
static
void
s_stake_net_clear
(
dap_chain_net_t
*
a_net
);
static
dap_chain_net_srv_stake_t
*
s_srv_stake
=
NULL
;
static
dap_chain_net_srv_stake_t
*
s_srv_stake
=
NULL
;
/**
/**
...
@@ -100,29 +104,49 @@ int dap_chain_net_srv_stake_pos_delegate_init()
...
@@ -100,29 +104,49 @@ int dap_chain_net_srv_stake_pos_delegate_init()
return
0
;
return
0
;
}
}
void
s_stake_ht_clear
()
/**
* @brief delete ht and hh concretic net from s_srv_stake
*/
void
s_stake_net_clear
(
dap_chain_net_t
*
a_net
)
{
{
dap_chain_net_srv_stake_item_t
*
l_stake
,
*
l_tmp
;
dap_chain_net_srv_stake_item_t
*
l_stake
=
NULL
,
*
l_tmp
=
NULL
;
HASH_ITER
(
ht
,
s_srv_stake
->
tx_itemlist
,
l_stake
,
l_tmp
)
{
HASH_ITER
(
ht
,
s_srv_stake
->
tx_itemlist
,
l_stake
,
l_tmp
)
{
// Clang bug at this, l_stake should change at every loop cycle
// Clang bug at this, l_stake should change at every loop cycle
HASH_DELETE
(
ht
,
s_srv_stake
->
tx_itemlist
,
l_stake
);
if
(
l_stake
->
net
->
pub
.
id
.
uint64
==
a_net
->
pub
.
id
.
uint64
)
HASH_DELETE
(
ht
,
s_srv_stake
->
tx_itemlist
,
l_stake
);
}
}
HASH_ITER
(
hh
,
s_srv_stake
->
itemlist
,
l_stake
,
l_tmp
)
{
HASH_ITER
(
hh
,
s_srv_stake
->
itemlist
,
l_stake
,
l_tmp
)
{
// Clang bug at this, l_stake should change at every loop cycle
// Clang bug at this, l_stake should change at every loop cycle
HASH_DEL
(
s_srv_stake
->
itemlist
,
l_stake
);
if
(
l_stake
->
net
->
pub
.
id
.
uint64
==
a_net
->
pub
.
id
.
uint64
)
{
DAP_DELETE
(
l_stake
);
HASH_DEL
(
s_srv_stake
->
itemlist
,
l_stake
);
DAP_DELETE
(
l_stake
);
}
}
}
dap_chain_net_srv_stake_cache_item_t
*
l_cache_item
,
*
l_cache_tmp
;
dap_chain_net_srv_stake_cache_item_t
*
l_cache_item
=
NULL
,
*
l_cache_tmp
=
NULL
;
HASH_ITER
(
hh
,
s_srv_stake
->
cache
,
l_cache_item
,
l_cache_tmp
)
{
HASH_ITER
(
hh
,
s_srv_stake
->
cache
,
l_cache_item
,
l_cache_tmp
)
{
// Clang bug at this, l_stake should change at every loop cycle
// Clang bug at this, l_stake should change at every loop cycle
HASH_DEL
(
s_srv_stake
->
cache
,
l_cache_item
);
if
(
l_cache_item
->
signing_addr
.
net_id
.
uint64
==
a_net
->
pub
.
id
.
uint64
)
{
DAP_DELETE
(
l_cache_item
);
HASH_DEL
(
s_srv_stake
->
cache
,
l_cache_item
);
DAP_DELETE
(
l_cache_item
);
}
}
}
/**
* @brief delete all nets ht and hh from s_srv_stake
*/
void
s_stake_clear
()
{
uint16_t
l_net_count
;
dap_chain_net_t
**
l_net_list
=
dap_chain_net_list
(
&
l_net_count
);
for
(
uint16_t
i
=
0
;
i
<
l_net_count
;
i
++
)
{
s_stake_net_clear
(
l_net_list
[
i
]);
}
}
}
}
void
dap_chain_net_srv_stake_pos_delegate_deinit
()
void
dap_chain_net_srv_stake_pos_delegate_deinit
()
{
{
s_stake_
ht_
clear
();
s_stake_clear
();
DAP_DEL_Z
(
s_srv_stake
);
DAP_DEL_Z
(
s_srv_stake
);
}
}
...
@@ -361,8 +385,7 @@ void dap_chain_net_srv_stake_purge(dap_chain_net_t *a_net)
...
@@ -361,8 +385,7 @@ void dap_chain_net_srv_stake_purge(dap_chain_net_t *a_net)
char
*
l_gdb_group
=
dap_chain_ledger_get_gdb_group
(
l_ledger
,
DAP_CHAIN_NET_SRV_STAKE_POS_DELEGATE_GDB_GROUP
);
char
*
l_gdb_group
=
dap_chain_ledger_get_gdb_group
(
l_ledger
,
DAP_CHAIN_NET_SRV_STAKE_POS_DELEGATE_GDB_GROUP
);
dap_global_db_del
(
l_gdb_group
,
NULL
,
NULL
,
NULL
);
dap_global_db_del
(
l_gdb_group
,
NULL
,
NULL
,
NULL
);
DAP_DELETE
(
l_gdb_group
);
DAP_DELETE
(
l_gdb_group
);
s_stake_net_clear
(
a_net
);
s_stake_ht_clear
();
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment