From 2ba4551fb91c61125a5ed8ebb95bbe56049970fc Mon Sep 17 00:00:00 2001 From: Caleb Gardner Date: Mon, 17 Apr 2023 08:01:20 -0500 Subject: [PATCH] Fixed stupid errors --- reader_file.go | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/reader_file.go b/reader_file.go index bd9283d..808c61d 100644 --- a/reader_file.go +++ b/reader_file.go @@ -302,9 +302,17 @@ func (f File) realExtract(folder string, op *ExtractionOptions) (err error) { if filFS.e[i].Type == inode.Fil { files = append(files, filFS.e[i]) } else { - go func() { - errChan <- f.ExtractWithOptions(extDir, op) - }() + go func(index int) { + subF, goErr := f.r.newFile(filFS.e[index], filFS) + if goErr != nil { + if op.Verbose { + log.Println("Error while resolving", extDir) + } + errChan <- goErr + return + } + errChan <- subF.ExtractWithOptions(extDir, op) + }(i) } } for i = 0; i < len(filFS.e)-len(files); i++ { @@ -315,9 +323,17 @@ func (f File) realExtract(folder string, op *ExtractionOptions) (err error) { } //Then we extract the files. for i = 0; i < len(files); i++ { - go func() { - errChan <- f.ExtractWithOptions(extDir, op) - }() + go func(index int) { + subF, goErr := f.r.newFile(files[index], filFS) + if goErr != nil { + if op.Verbose { + log.Println("Error while resolving", extDir) + } + errChan <- goErr + return + } + errChan <- subF.ExtractWithOptions(extDir, op) + }(i) } for i = 0; i < len(files); i++ { err = <-errChan