From: Sergey Matveev Date: Sun, 24 Jan 2016 13:41:18 +0000 (+0300) Subject: No need in buffers outside the reading goroutine X-Git-Tag: 5.4^2~6 X-Git-Url: http://www.git.cypherpunks.ru/?p=govpn.git;a=commitdiff_plain;h=b079f41f6b4d5d13f16caf047f7671e72cd99c45 No need in buffers outside the reading goroutine Signed-off-by: Sergey Matveev --- diff --git a/src/cypherpunks.ru/govpn/tap.go b/src/cypherpunks.ru/govpn/tap.go index 6e545b4..8a44575 100644 --- a/src/cypherpunks.ru/govpn/tap.go +++ b/src/cypherpunks.ru/govpn/tap.go @@ -26,9 +26,6 @@ type TAP struct { Name string Sink chan []byte dev io.ReadWriter - buf0 []byte - buf1 []byte - bufZ bool } var ( @@ -43,21 +40,22 @@ func NewTAP(ifaceName string, mtu int) (*TAP, error) { tap := TAP{ Name: ifaceName, dev: tapRaw, - buf0: make([]byte, mtu), - buf1: make([]byte, mtu), Sink: make(chan []byte), } go func() { var n int var err error var buf []byte + buf0 := make([]byte, mtu) + buf1 := make([]byte, mtu) + bufZ := false for { - if tap.bufZ { - buf = tap.buf0 + if bufZ { + buf = buf0 } else { - buf = tap.buf1 + buf = buf1 } - tap.bufZ = !tap.bufZ + bufZ = !bufZ n, err = tap.dev.Read(buf) if err != nil { panic("Reading TAP:" + err.Error())