From fd71dc2b7822fdd6fd202b1f62a47d99857d4bf8 Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Wed, 18 Oct 2017 09:07:13 -0600 Subject: [PATCH] Force single thread if small file Fixes #5 --- connect.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/connect.go b/connect.go index 08970a29..7e28fe88 100644 --- a/connect.go +++ b/connect.go @@ -65,6 +65,18 @@ func NewConnection(flags *Flags) *Connection { } func (c *Connection) Run() { + forceSingleThreaded := false + if c.IsSender { + fdata, err := ioutil.ReadFile(c.File.Name) + if err != nil { + log.Fatal(err) + return + } + if len(fdata) < MAX_NUMBER_THREADS*BUFFERSIZE { + forceSingleThreaded = true + log.Debug("forcing single thread") + } + } log.Debug("checking code validity") for { // check code @@ -73,7 +85,7 @@ func (c *Connection) Run() { numThreads, errParse := strconv.Atoi(m[0]) if len(m) < 2 { goodCode = false - } else if numThreads > MAX_NUMBER_THREADS || numThreads < 1 { + } else if numThreads > MAX_NUMBER_THREADS || numThreads < 1 || (forceSingleThreaded && numThreads != 1) { c.NumberOfConnections = MAX_NUMBER_THREADS goodCode = false } else if errParse != nil { @@ -82,6 +94,9 @@ func (c *Connection) Run() { log.Debug(m) if !goodCode { if c.IsSender { + if forceSingleThreaded { + c.NumberOfConnections = 1 + } c.Code = strconv.Itoa(c.NumberOfConnections) + "-" + GetRandomName() } else { if len(c.Code) != 0 {