routing: catch lifecycle quit signal in collectResult

This commit is contained in:
yyforyongyu 2023-03-07 20:27:02 +08:00
parent da8f1c084a
commit eda24ec871
No known key found for this signature in database
GPG key ID: 9BCD95C4FF296868

View file

@ -17,6 +17,10 @@ import (
"github.com/lightningnetwork/lnd/routing/shards"
)
// ErrPaymentLifecycleExiting is used when waiting for htlc attempt result, but
// the payment lifecycle is exiting .
var ErrPaymentLifecycleExiting = errors.New("payment lifecycle exiting")
// paymentLifecycle holds all information about the current state of a payment
// needed to resume if from any point.
type paymentLifecycle struct {
@ -496,6 +500,9 @@ func (p *paymentLifecycle) collectResult(attempt *channeldb.HTLCAttempt) (
return nil, htlcswitch.ErrSwitchExiting
}
case <-p.quit:
return nil, ErrPaymentLifecycleExiting
case <-p.router.quit:
return nil, ErrRouterShuttingDown
}