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 { func (m *Client) Dispatch(ctx context.Context, outboundRay ray.OutboundRay) bool {
m.access.Lock() m.access.Lock()
defer m.access.Unlock() defer m.access.Unlock()
@ -210,6 +217,7 @@ func (m *Client) Dispatch(ctx context.Context, outboundRay ray.OutboundRay) bool
} }
m.sessions[id] = s m.sessions[id] = s
go fetchInput(ctx, s, m.inboundRay.InboundInput()) go fetchInput(ctx, s, m.inboundRay.InboundInput())
go waitForDone(ctx, s)
return true return true
} }

Loading…
Cancel
Save