Skip to content

Commit 69922df

Browse files
authored
s2c/s2sx: Use concurrent decoding (#746)
Use concurrent decoding when recompressing and verifying. s2sx: Use concurrent decoding with single files (non-tar)
1 parent fe37dc6 commit 69922df

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

s2/cmd/_s2sx/_unpack/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func main() {
9696
defer f.Close()
9797
out = f
9898
}
99-
_, err = io.Copy(out, dec)
99+
_, err = dec.DecodeConcurrent(out, 0)
100100
exitErr(err)
101101

102102
case opUnTar:

s2/cmd/s2c/main.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ Options:`)
306306
}
307307
start := time.Now()
308308
dec.Reset(buf)
309-
n, err := io.Copy(io.Discard, dec)
309+
n, err := dec.DecodeConcurrent(io.Discard, *cpu)
310310
exitErr(err)
311311
if int(n) != len(b) {
312312
exitErr(fmt.Errorf("unexpected size, want %d, got %d", len(b), n))
@@ -478,7 +478,12 @@ Options:`)
478478
}
479479
if *recomp {
480480
dec := s2.NewReader(src)
481-
src = io.NopCloser(dec)
481+
pr, pw := io.Pipe()
482+
go func() {
483+
_, err := dec.DecodeConcurrent(pw, *cpu)
484+
pw.CloseWithError(err)
485+
}()
486+
src = pr
482487
}
483488

484489
var out io.Writer
@@ -582,7 +587,7 @@ func verifyTo(w io.Writer) (io.Writer, func() error) {
582587
go func() {
583588
defer wg.Done()
584589
r := s2.NewReader(pr)
585-
_, err = io.Copy(io.Discard, r)
590+
_, err = r.DecodeConcurrent(io.Discard, *cpu)
586591
pr.CloseWithError(fmt.Errorf("verify: %w", err))
587592
}()
588593
return writer, func() error {

0 commit comments

Comments
 (0)