mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-30 23:53:41 +02:00
multi: don't access loop variables in goroutines
This commit makes sure that no loop variables or other temporary variables are accessed directly in a goroutine but are instead passed into the goroutine through a parameter. This makes sure a copy of the value is put on the stack and is not changed while the outside loop continues.
This commit is contained in:
@@ -235,7 +235,9 @@ out:
|
||||
//
|
||||
// TODO(wilmer): add retry logic if rescan fails?
|
||||
b.wg.Add(1)
|
||||
go func() {
|
||||
|
||||
//nolint:lll
|
||||
go func(msg *chainntnfs.HistoricalConfDispatch) {
|
||||
defer b.wg.Done()
|
||||
|
||||
confDetails, _, err := b.historicalConfDetails(
|
||||
@@ -269,7 +271,7 @@ out:
|
||||
"details of %v: %v",
|
||||
msg.ConfRequest, err)
|
||||
}
|
||||
}()
|
||||
}(msg)
|
||||
|
||||
case *chainntnfs.HistoricalSpendDispatch:
|
||||
// In order to ensure we don't block the caller
|
||||
@@ -278,7 +280,9 @@ out:
|
||||
//
|
||||
// TODO(wilmer): add retry logic if rescan fails?
|
||||
b.wg.Add(1)
|
||||
go func() {
|
||||
|
||||
//nolint:lll
|
||||
go func(msg *chainntnfs.HistoricalSpendDispatch) {
|
||||
defer b.wg.Done()
|
||||
|
||||
spendDetails, err := b.historicalSpendDetails(
|
||||
@@ -320,7 +324,7 @@ out:
|
||||
"details of %v: %v",
|
||||
msg.SpendRequest, err)
|
||||
}
|
||||
}()
|
||||
}(msg)
|
||||
|
||||
case *blockEpochRegistration:
|
||||
chainntnfs.Log.Infof("New block epoch subscription")
|
||||
|
Reference in New Issue
Block a user