提交 f6a336cc 作者: Juan Batiz-Benet

Merge pull request #766 from jbenet/ctx-done-fixes

ctx.Done fixes
......@@ -224,7 +224,10 @@ func writeMsgCtx(ctx context.Context, w msgio.Writer, msg proto.Message) ([]byte
done := make(chan error)
go func(m []byte) {
err := w.WriteMsg(m)
done <- err
select {
case done <- err:
case <-ctx.Done():
}
}(enc)
select {
......@@ -243,7 +246,10 @@ func readMsgCtx(ctx context.Context, r msgio.Reader, p proto.Message) ([]byte, e
go func() {
var err error
msg, err = r.ReadMsg()
done <- err
select {
case done <- err:
case <-ctx.Done():
}
}()
select {
......
......@@ -44,7 +44,12 @@ func (d *Dialer) Dial(ctx context.Context, raddr ma.Multiaddr, remote peer.ID) (
// do it async to ensure we respect don contexteone
go func() {
defer func() { done <- struct{}{} }()
defer func() {
select {
case done <- struct{}{}:
case <-ctx.Done():
}
}()
c, err := newSingleConn(ctx, d.LocalPeer, remote, maconn)
if err != nil {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论