wait for done

pull/432/head
Darien Raymond 8 years ago
parent 32842bc14b
commit 55328921b5
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

@ -182,6 +182,13 @@ func fetchInput(ctx context.Context, s *session, output buf.Writer) {
}
}
func waitForDone(ctx context.Context, s *session) {
<-ctx.Done()
s.closeUplink()
s.closeDownlink()
s.output.Close()
}
func (m *Client) Dispatch(ctx context.Context, outboundRay ray.OutboundRay) bool {
m.access.Lock()
defer m.access.Unlock()
@ -210,6 +217,7 @@ func (m *Client) Dispatch(ctx context.Context, outboundRay ray.OutboundRay) bool
}
m.sessions[id] = s
go fetchInput(ctx, s, m.inboundRay.InboundInput())
go waitForDone(ctx, s)
return true
}

Loading…
Cancel
Save