peer: extend SendMessage to allow callers to block until msg is sent
This commit is contained in:
parent
b3bc374ba1
commit
ca9174e166
@ -111,10 +111,9 @@ type ChannelLink interface {
|
|||||||
// Peer is an interface which represents the remote lightning node inside our
|
// Peer is an interface which represents the remote lightning node inside our
|
||||||
// system.
|
// system.
|
||||||
type Peer interface {
|
type Peer interface {
|
||||||
// SendMessage sends message to remote peer. The second arguments
|
// SendMessage sends message to remote peer. The second argument
|
||||||
// denote if the method should block until the message has been sent to
|
// denotes if the method should block until the message has been sent
|
||||||
// the remote peer. If set, this allows the caller to more strongly
|
// to the remote peer.
|
||||||
// synchronize.
|
|
||||||
SendMessage(msg lnwire.Message, sync bool) error
|
SendMessage(msg lnwire.Message, sync bool) error
|
||||||
|
|
||||||
// WipeChannel removes the channel uniquely identified by its channel
|
// WipeChannel removes the channel uniquely identified by its channel
|
||||||
|
17
peer.go
17
peer.go
@ -1874,10 +1874,23 @@ func (p *peer) sendInitMsg() error {
|
|||||||
return p.writeMessage(msg)
|
return p.writeMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SendMessage queues a message for sending to the target peer.
|
// SendMessage sends message to remote peer. The second argument denotes if the
|
||||||
func (p *peer) SendMessage(msg lnwire.Message) error {
|
// method should block until the message has been sent to the remote peer.
|
||||||
|
func (p *peer) SendMessage(msg lnwire.Message, sync bool) error {
|
||||||
|
if !sync {
|
||||||
p.queueMsg(msg, nil)
|
p.queueMsg(msg, nil)
|
||||||
return nil
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
errChan := make(chan error, 1)
|
||||||
|
p.queueMsg(msg, errChan)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case err := <-errChan:
|
||||||
|
return err
|
||||||
|
case <-p.quit:
|
||||||
|
return fmt.Errorf("peer shutting down")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PubKey returns the pubkey of the peer in compressed serialized format.
|
// PubKey returns the pubkey of the peer in compressed serialized format.
|
||||||
|
Loading…
Reference in New Issue
Block a user