From 67abc97c6aa0c04aba3132f7f7f62350a0476bac Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Thu, 11 Apr 2019 07:46:57 -0700 Subject: [PATCH] sender is more accurate bar --- src/webrtc/pkg/session/sender/sender.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/webrtc/pkg/session/sender/sender.go b/src/webrtc/pkg/session/sender/sender.go index 79bf9874..c79b1f9a 100644 --- a/src/webrtc/pkg/session/sender/sender.go +++ b/src/webrtc/pkg/session/sender/sender.go @@ -60,6 +60,8 @@ type Session struct { // Stats/infos readingStats *stats.Stats bar *progressbar.ProgressBar + fileSize int64 + firstByte bool } // New creates a new sender session @@ -177,13 +179,8 @@ func (s *Session) readFile(pathToFile string) error { return err } stat, _ := f.Stat() - s.bar = progressbar.NewOptions64( - stat.Size(), - progressbar.OptionSetRenderBlankState(true), - progressbar.OptionSetBytes64(stat.Size()), - progressbar.OptionSetWriter(os.Stderr), - progressbar.OptionThrottle(1/60*time.Second), - ) + s.fileSize = stat.Size() + s.firstByte = true log.Debugf("Starting to read data from '%s'", pathToFile) s.readingStats.Start() defer func() { @@ -248,6 +245,16 @@ func (s *Session) onBufferedAmountLow() func() { return } s.sess.NetworkStats.AddBytes(uint64(cur.n)) + if s.firstByte { + s.firstByte = false + s.bar = progressbar.NewOptions64( + s.fileSize, + progressbar.OptionSetRenderBlankState(true), + progressbar.OptionSetBytes64(s.fileSize), + progressbar.OptionSetWriter(os.Stderr), + progressbar.OptionThrottle(1/60*time.Second), + ) + } s.bar.Add(cur.n) s.msgToBeSent = s.msgToBeSent[1:] }