Upgrade versions of vendored libs
This commit is contained in:
23
vendor/github.com/DataDog/zstd/zstd_stream.go
generated
vendored
23
vendor/github.com/DataDog/zstd/zstd_stream.go
generated
vendored
@@ -72,6 +72,7 @@ import (
|
||||
|
||||
var errShortRead = errors.New("short read")
|
||||
var errReaderClosed = errors.New("Reader is closed")
|
||||
var ErrNoParallelSupport = errors.New("No parallel support")
|
||||
|
||||
// Writer is an io.WriteCloser that zstd-compresses its input.
|
||||
type Writer struct {
|
||||
@@ -302,6 +303,28 @@ func (w *Writer) Close() error {
|
||||
return getError(int(C.ZSTD_freeCStream(w.ctx)))
|
||||
}
|
||||
|
||||
// Set the number of workers to run the compression in parallel using multiple threads
|
||||
// If > 1, the Write() call will become asynchronous. This means data will be buffered until processed.
|
||||
// If you call Write() too fast, you might incur a memory buffer up to as large as your input.
|
||||
// Consider calling Flush() periodically if you need to compress a very large file that would not fit all in memory.
|
||||
// By default only one worker is used.
|
||||
func (w *Writer) SetNbWorkers(n int) error {
|
||||
if w.firstError != nil {
|
||||
return w.firstError
|
||||
}
|
||||
if err := getError(int(C.ZSTD_CCtx_setParameter(w.ctx, C.ZSTD_c_nbWorkers, C.int(n)))); err != nil {
|
||||
w.firstError = err
|
||||
// First error case, a shared libary is used, and the library was compiled without parallel support
|
||||
if err.Error() == "Unsupported parameter" {
|
||||
return ErrNoParallelSupport
|
||||
} else {
|
||||
// This could happen if a very large number is passed in, and possibly zstd refuse to create as many threads, or the OS fails to do so
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// cSize is the recommended size of reader.compressionBuffer. This func and
|
||||
// invocation allow for a one-time check for validity.
|
||||
var cSize = func() int {
|
||||
|
||||
Reference in New Issue
Block a user