From 62258e6aefecce36b96d87f18bb413592d952e6d Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Mon, 23 Oct 2017 14:09:14 +0200 Subject: [PATCH] fix #638 --- transport/ray/direct.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/transport/ray/direct.go b/transport/ray/direct.go index f9406f8e3..e26348c24 100644 --- a/transport/ray/direct.go +++ b/transport/ray/direct.go @@ -143,15 +143,20 @@ func (s *Stream) ReadTimeout(timeout time.Duration) (buf.MultiBuffer, error) { } } +// Size returns the number of bytes hold in the Stream. +func (s *Stream) Size() uint64 { + s.access.RLock() + defer s.access.RUnlock() + + return s.size +} + func (s *Stream) waitForStreamSize() error { if streamSizeLimit == 0 { return nil } - s.access.RLock() - defer s.access.RUnlock() - - for streamSizeLimit > 0 && s.size >= streamSizeLimit { + for s.Size() >= streamSizeLimit { select { case <-s.ctx.Done(): return io.ErrClosedPipe