From 9fdd802ab4655d2258cef1b05c81be8e0fe4e2ad Mon Sep 17 00:00:00 2001 From: Richard Musiol Date: Tue, 22 Nov 2016 13:03:09 +0100 Subject: [PATCH] make call.done channel buffered so it can discard its value if the call got cancelled --- jsonrpc2.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsonrpc2.go b/jsonrpc2.go index 76e8d0e..7ed2eb9 100644 --- a/jsonrpc2.go +++ b/jsonrpc2.go @@ -318,7 +318,7 @@ func (c *Conn) send(ctx context.Context, m *anyMessage, wait bool) (*call, error // responses. var cc *call if m.request != nil && wait { - cc = &call{request: m.request, seq: c.seq, done: make(chan error)} + cc = &call{request: m.request, seq: c.seq, done: make(chan error, 1)} c.pending[ID{Num: c.seq}] = cc // use next seq as call ID m.request.ID.Num = c.seq c.seq++