@@ -784,16 +784,17 @@ func ensureParticipationDB(genesisDir string, log logging.Logger) (account.Parti
784
784
// Reload participation keys from disk periodically
785
785
func (node * AlgorandFullNode ) checkForParticipationKeys () {
786
786
defer node .monitoringRoutinesWaitGroup .Done ()
787
+ done := node .ctx .Done ()
787
788
ticker := time .NewTicker (node .config .ParticipationKeysRefreshInterval )
789
+ defer ticker .Stop ()
788
790
for {
789
791
select {
790
792
case <- ticker .C :
791
793
err := node .loadParticipationKeys ()
792
794
if err != nil {
793
795
node .log .Errorf ("Could not refresh participation keys: %v" , err )
794
796
}
795
- case <- node .ctx .Done ():
796
- ticker .Stop ()
797
+ case <- done :
797
798
return
798
799
}
799
800
}
@@ -1034,13 +1035,14 @@ var txPoolGuage = metrics.MakeGauge(metrics.MetricName{Name: "algod_tx_pool_coun
1034
1035
1035
1036
func (node * AlgorandFullNode ) txPoolGaugeThread () {
1036
1037
defer node .monitoringRoutinesWaitGroup .Done ()
1038
+ done := node .ctx .Done ()
1037
1039
ticker := time .NewTicker (10 * time .Second )
1038
1040
defer ticker .Stop ()
1039
1041
for true {
1040
1042
select {
1041
1043
case <- ticker .C :
1042
1044
txPoolGuage .Set (float64 (node .transactionPool .PendingCount ()), nil )
1043
- case <- node . ctx . Done () :
1045
+ case <- done :
1044
1046
return
1045
1047
}
1046
1048
}
@@ -1072,10 +1074,11 @@ func (node *AlgorandFullNode) OnNewBlock(block bookkeeping.Block, delta ledgerco
1072
1074
// It runs in a separate thread so that, during catchup, we
1073
1075
// don't have to delete key for each block we received.
1074
1076
func (node * AlgorandFullNode ) oldKeyDeletionThread () {
1077
+ done := node .ctx .Done ()
1075
1078
defer node .monitoringRoutinesWaitGroup .Done ()
1076
1079
for {
1077
1080
select {
1078
- case <- node . ctx . Done () :
1081
+ case <- done :
1079
1082
return
1080
1083
case <- node .oldKeyDeletionNotify :
1081
1084
}
0 commit comments