diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 48eb24ddf..338dd7472 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -3762,13 +3762,15 @@ size_t ZSTD_compress_generic (ZSTD_CCtx* cctx, cctx->frameContentSize, 0 /* dictSize */); if (cctx->nbThreads > 1) { CHECK_F( ZSTDMT_initCStream_internal(cctx->mtctx, NULL, 0, cctx->cdict, params, cctx->frameContentSize) ); + cctx->streamStage = zcss_load; } else { CHECK_F( ZSTD_resetCStream_internal(cctx, params, cctx->frameContentSize) ); } } if (cctx->nbThreads > 1) { - DEBUGLOG(5, "starting ZSTDMT_compressStream_generic"); - return ZSTDMT_compressStream_generic(cctx->mtctx, output, input, endOp) ; + size_t const flushMin = ZSTDMT_compressStream_generic(cctx->mtctx, output, input, endOp); + if (ZSTD_isError(flushMin)) cctx->streamStage = zcss_init; + return flushMin; } DEBUGLOG(5, "starting ZSTD_compressStream_generic"); diff --git a/lib/compress/zstdmt_compress.c b/lib/compress/zstdmt_compress.c index 09ac51218..098412824 100644 --- a/lib/compress/zstdmt_compress.c +++ b/lib/compress/zstdmt_compress.c @@ -851,11 +851,11 @@ size_t ZSTDMT_endStream(ZSTDMT_CCtx* zcs, ZSTD_outBuffer* output) } size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, - ZSTD_outBuffer* output, - ZSTD_inBuffer* input, - ZSTD_EndDirective endOp) + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp) { - CHECK_F (ZSTDMT_compressStream(mtctx, output, input)); + CHECK_F(ZSTDMT_compressStream(mtctx, output, input)); switch(endOp) { case ZSTD_e_flush: