netchan: do not block sends; implement flow control.
When data is received for a channel, but that channel is not ready to receive it, the central run() loop is currently blocked, but this can lead to deadlock and interference between independent channels. This CL adds an explicit buffer size to netchan channels (an API change) - the sender will not send values until the buffer is non empty. The protocol changes to send ids rather than channel names because acks can still be sent after a channel is hung up, we we need an identifier that can be ignored. R=r, rsc CC=golang-dev https://golang.org/cl/2447042
Showing
Please
register
or
sign in
to comment