diff --git a/src/pkg/netchan/export.go b/src/pkg/netchan/export.go index a16714ba23e..3142eebf736 100644 --- a/src/pkg/netchan/export.go +++ b/src/pkg/netchan/export.go @@ -154,8 +154,9 @@ func (client *expClient) serveRecv(hdr header, count int) { client.sendError(&hdr, err.String()) break } - if count > 0 { - if count--; count == 0 { + // Negative count means run forever. + if count >= 0 { + if count--; count <= 0 { break } } diff --git a/src/pkg/netchan/import.go b/src/pkg/netchan/import.go index 244a83c5bcc..1effbaef4a0 100644 --- a/src/pkg/netchan/import.go +++ b/src/pkg/netchan/import.go @@ -114,14 +114,14 @@ func (imp *Importer) run() { } // Import imports a channel of the given type and specified direction. -// It is equivalent to ImportNValues with a count of 0, meaning unbounded. +// It is equivalent to ImportNValues with a count of -1, meaning unbounded. func (imp *Importer) Import(name string, chT interface{}, dir Dir) os.Error { return imp.ImportNValues(name, chT, dir, 0) } // ImportNValues imports a channel of the given type and specified direction // and then receives or transmits up to n values on that channel. A value of -// n==0 implies an unbounded number of values. The channel to be bound to +// n==-1 implies an unbounded number of values. The channel to be bound to // the remote site's channel is provided in the call and may be of arbitrary // channel type. // Despite the literal signature, the effective signature is