peer.DoDrpc method

This commit is contained in:
Sergey Cherepanov 2023-06-02 10:39:24 +02:00
parent 1206071dd6
commit e9f23e2dd9
No known key found for this signature in database
GPG Key ID: 87F8EDE8FBDF637C

View File

@ -41,6 +41,7 @@ type Peer interface {
AcquireDrpcConn(ctx context.Context) (drpc.Conn, error)
ReleaseDrpcConn(conn drpc.Conn)
DoDrpc(ctx context.Context, do func(conn drpc.Conn) error) error
IsClosed() bool
@ -95,6 +96,15 @@ func (p *peer) ReleaseDrpcConn(conn drpc.Conn) {
return
}
func (p *peer) DoDrpc(ctx context.Context, do func(conn drpc.Conn) error) error {
conn, err := p.AcquireDrpcConn(ctx)
if err != nil {
return err
}
defer p.ReleaseDrpcConn(conn)
return do(conn)
}
func (p *peer) acceptLoop() {
var exitErr error
defer func() {