diff --git a/htlcswitch/link.go b/htlcswitch/link.go index 9a933f046..2aeb9707e 100644 --- a/htlcswitch/link.go +++ b/htlcswitch/link.go @@ -465,6 +465,12 @@ func (l *channelLink) Stop() { l.wg.Wait() } +// WaitForShutdown blocks until the link finishes shutting down, which includes +// termination of all dependent goroutines. +func (l *channelLink) WaitForShutdown() { + l.wg.Wait() +} + // EligibleToForward returns a bool indicating if the channel is able to // actively accept requests to forward HTLC's. We're able to forward HTLC's if // we know the remote party's next revocation point. Otherwise, we can't diff --git a/htlcswitch/link_test.go b/htlcswitch/link_test.go index c6b2819ff..8c56b1e4e 100644 --- a/htlcswitch/link_test.go +++ b/htlcswitch/link_test.go @@ -3710,6 +3710,7 @@ func (h *persistentLinkHarness) restart(restartSwitch bool, // First, remove the link from the switch. h.coreLink.cfg.Switch.RemoveLink(h.link.ChanID()) + h.coreLink.WaitForShutdown() var htlcSwitch *Switch if restartSwitch {