From 5f8b64c646ea840627ad8700483bbc50a008f6a4 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Fri, 17 Aug 2018 11:52:55 +0200 Subject: [PATCH] use SingleReader on low end devices --- common/buf/io.go | 13 +------------ common/buf/io_highend.go | 23 +++++++++++++++++++++++ common/buf/io_lowend.go | 13 +++++++++++++ 3 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 common/buf/io_highend.go create mode 100644 common/buf/io_lowend.go diff --git a/common/buf/io.go b/common/buf/io.go index 71794b69..182b61ed 100644 --- a/common/buf/io.go +++ b/common/buf/io.go @@ -59,18 +59,7 @@ func NewReader(reader io.Reader) Reader { return mr } - if useReadv { - if sc, ok := reader.(syscall.Conn); ok { - rawConn, err := sc.SyscallConn() - if err != nil { - newError("failed to get sysconn").Base(err).WriteToLog() - } else { - return NewReadVReader(reader, rawConn) - } - } - } - - return NewBytesToBufferReader(reader) + return newReaderPlatform(reader) } // NewWriter creates a new Writer. diff --git a/common/buf/io_highend.go b/common/buf/io_highend.go new file mode 100644 index 00000000..b461690d --- /dev/null +++ b/common/buf/io_highend.go @@ -0,0 +1,23 @@ +// +build 386 amd64 s390 s390x + +package buf + +import ( + "io" + "syscall" +) + +func newReaderPlatform(reader io.Reader) Reader { + if useReadv { + if sc, ok := reader.(syscall.Conn); ok { + rawConn, err := sc.SyscallConn() + if err != nil { + newError("failed to get sysconn").Base(err).WriteToLog() + } else { + return NewReadVReader(reader, rawConn) + } + } + } + + return NewBytesToBufferReader(reader) +} diff --git a/common/buf/io_lowend.go b/common/buf/io_lowend.go new file mode 100644 index 00000000..83ab8f38 --- /dev/null +++ b/common/buf/io_lowend.go @@ -0,0 +1,13 @@ +// +build mips mipsle mips64 mips64le arm arm64 + +package buf + +import ( + "io" +) + +func newReaderPlatform(reader io.Reader) Reader { + return &SingleReader{ + Reader: reader, + } +}