multi: move several wait group done calls to defer statements
This commit is contained in:
parent
27849d3020
commit
10d94f99c0
@ -174,6 +174,8 @@ func (b *BitcoindNotifier) startNotifier() error {
|
|||||||
// notificationDispatcher is the primary goroutine which handles client
|
// notificationDispatcher is the primary goroutine which handles client
|
||||||
// notification registrations, as well as notification dispatches.
|
// notification registrations, as well as notification dispatches.
|
||||||
func (b *BitcoindNotifier) notificationDispatcher() {
|
func (b *BitcoindNotifier) notificationDispatcher() {
|
||||||
|
defer b.wg.Done()
|
||||||
|
|
||||||
out:
|
out:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -436,7 +438,6 @@ out:
|
|||||||
break out
|
break out
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// historicalConfDetails looks up whether a confirmation request (txid/output
|
// historicalConfDetails looks up whether a confirmation request (txid/output
|
||||||
|
@ -288,6 +288,8 @@ func (b *BtcdNotifier) onRedeemingTx(tx *btcutil.Tx, details *btcjson.BlockDetai
|
|||||||
// notificationDispatcher is the primary goroutine which handles client
|
// notificationDispatcher is the primary goroutine which handles client
|
||||||
// notification registrations, as well as notification dispatches.
|
// notification registrations, as well as notification dispatches.
|
||||||
func (b *BtcdNotifier) notificationDispatcher() {
|
func (b *BtcdNotifier) notificationDispatcher() {
|
||||||
|
defer b.wg.Done()
|
||||||
|
|
||||||
out:
|
out:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -487,7 +489,6 @@ out:
|
|||||||
break out
|
break out
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// historicalConfDetails looks up whether a confirmation request (txid/output
|
// historicalConfDetails looks up whether a confirmation request (txid/output
|
||||||
|
@ -781,6 +781,8 @@ func (t *txSubscriptionClient) Cancel() {
|
|||||||
// wallet's notification client to a higher-level TransactionSubscription
|
// wallet's notification client to a higher-level TransactionSubscription
|
||||||
// client.
|
// client.
|
||||||
func (t *txSubscriptionClient) notificationProxier() {
|
func (t *txSubscriptionClient) notificationProxier() {
|
||||||
|
defer t.wg.Done()
|
||||||
|
|
||||||
out:
|
out:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -830,8 +832,6 @@ out:
|
|||||||
break out
|
break out
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SubscribeTransactions returns a TransactionSubscription client which
|
// SubscribeTransactions returns a TransactionSubscription client which
|
||||||
|
@ -425,6 +425,8 @@ func (l *LightningWallet) ActiveReservations() []*ChannelReservation {
|
|||||||
// requestHandler is the primary goroutine(s) responsible for handling, and
|
// requestHandler is the primary goroutine(s) responsible for handling, and
|
||||||
// dispatching replies to all messages.
|
// dispatching replies to all messages.
|
||||||
func (l *LightningWallet) requestHandler() {
|
func (l *LightningWallet) requestHandler() {
|
||||||
|
defer l.wg.Done()
|
||||||
|
|
||||||
out:
|
out:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -450,8 +452,6 @@ out:
|
|||||||
break out
|
break out
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
l.wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// InitChannelReservation kicks off the 3-step workflow required to successfully
|
// InitChannelReservation kicks off the 3-step workflow required to successfully
|
||||||
|
@ -1836,6 +1836,8 @@ out:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Avoid an exit deadlock by ensuring WaitGroups are decremented before
|
||||||
|
// disconnect.
|
||||||
p.wg.Done()
|
p.wg.Done()
|
||||||
|
|
||||||
p.Disconnect(exitErr)
|
p.Disconnect(exitErr)
|
||||||
|
Loading…
Reference in New Issue
Block a user