staticaddr/loopin: handle closed invoice updates

Treat closed invoice update channels as terminal for the monitor loop.

This avoids spinning when lnd closes the subscription after invoice cancellation or shutdown.
This commit is contained in:
Slyghtning 2026-07-07 09:35:14 +02:00
parent a6d061c568
commit 8456314155
No known key found for this signature in database
GPG key ID: F82D456EA023C9BF

View file

@ -765,12 +765,22 @@ func (f *FSM) MonitorInvoiceAndHtlcTxAction(ctx context.Context,
return f.HandleError(err)
case update := <-invoiceUpdateChan:
case update, ok := <-invoiceUpdateChan:
if !ok {
invoiceUpdateChan = nil
continue
}
if event, done := f.handleInvoiceUpdate(update); done {
return event
}
case err = <-invoiceErrChan:
case err, ok := <-invoiceErrChan:
if !ok {
invoiceErrChan = nil
continue
}
f.Errorf("invoice subscription error: %v", err)
case <-ctx.Done():