From fc5db3defb3bec77c33824f2bb285eca38d1819d Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Wed, 6 Aug 2014 21:46:48 +0000 Subject: [PATCH] generate at most one write syscall per value --- rsload.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rsload.go b/rsload.go index 48976ad..403a15e 100644 --- a/rsload.go +++ b/rsload.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "flag" "fmt" "net" @@ -79,13 +80,15 @@ func main() { sent := make(chan value, options.buffer) go streamValues(infile, c) go func() { + w := bufio.NewWriterSize(conn, 4048) defer func() { close(sent) fmt.Println("All data transferred. Waiting for the last reply...") }() for r := range c { if r.ok() { - r.val().Write(conn) + r.val().Write(w) + w.Flush() sent <- r.val() } else { fmt.Fprintf(os.Stderr, "InputError: %v\n", r.err())