summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/kernel/pipe/pipe.go
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2019-04-01 12:52:19 -0700
committerShentubot <shentubot@google.com>2019-04-01 12:53:27 -0700
commita4b34e26372528ef60140acef0b7c1ab1934f82a (patch)
tree3d308e07c065191dd0c4f0e30553eb21666c6969 /pkg/sentry/kernel/pipe/pipe.go
parent0327931ca41de892dcdae4fd6a7123cea5b0b2f0 (diff)
gvisor: convert ilist to ilist:generic_list
ilist:generic_list works faster (cl/240185278) and the code looks cleaner without type casting. PiperOrigin-RevId: 241381175 Change-Id: I8487ab1d73637b3e9733c253c56dce9e79f0d35f
Diffstat (limited to 'pkg/sentry/kernel/pipe/pipe.go')
-rw-r--r--pkg/sentry/kernel/pipe/pipe.go8
1 files changed, 3 insertions, 5 deletions
diff --git a/pkg/sentry/kernel/pipe/pipe.go b/pkg/sentry/kernel/pipe/pipe.go
index fad077d2d..357d1162e 100644
--- a/pkg/sentry/kernel/pipe/pipe.go
+++ b/pkg/sentry/kernel/pipe/pipe.go
@@ -25,7 +25,6 @@ import (
"sync/atomic"
"syscall"
- "gvisor.googlesource.com/gvisor/pkg/ilist"
"gvisor.googlesource.com/gvisor/pkg/sentry/context"
"gvisor.googlesource.com/gvisor/pkg/sentry/fs"
"gvisor.googlesource.com/gvisor/pkg/sentry/usermem"
@@ -51,7 +50,7 @@ type Pipe struct {
Dirent *fs.Dirent
// The buffered byte queue.
- data ilist.List
+ data bufferList
// Max size of the pipe in bytes. When this max has been reached,
// writers will get EWOULDBLOCK.
@@ -170,13 +169,12 @@ func (p *Pipe) read(ctx context.Context, dst usermem.IOSequence) (int64, error)
return 0, syserror.ErrWouldBlock
}
var n int64
- for b := p.data.Front(); b != nil; b = p.data.Front() {
- buffer := b.(*Buffer)
+ for buffer := p.data.Front(); buffer != nil; buffer = p.data.Front() {
n0, err := dst.CopyOut(ctx, buffer.bytes())
n += int64(n0)
p.size -= n0
if buffer.truncate(n0) == 0 {
- p.data.Remove(b)
+ p.data.Remove(buffer)
}
dst = dst.DropFirst(n0)
if dst.NumBytes() == 0 || err != nil {