added error detection for pthread initialization, added compression completion measurement, fixed const values

This commit is contained in:
Paul Cruz
2017-07-17 10:12:44 -07:00
parent 1ab3f06f00
commit 50ce4eaeb6
3 changed files with 131 additions and 53 deletions
+9
View File
@@ -140,6 +140,9 @@ struct ZSTD_CCtx_s {
/* Multi-threading */
U32 nbThreads;
ZSTDMT_CCtx* mtctx;
/* adaptive compression */
double completion;
};
@@ -2845,6 +2848,7 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx,
BYTE* op = ostart;
U32 const maxDist = 1 << cctx->appliedParams.cParams.windowLog;
cctx->completion = 0;
if (cctx->appliedParams.fParams.checksumFlag && srcSize)
XXH64_update(&cctx->xxhState, src, srcSize);
@@ -2895,6 +2899,7 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx,
}
remaining -= blockSize;
cctx->completion = 1 - (double)remaining/srcSize;
dstCapacity -= cSize;
ip += blockSize;
op += cSize;
@@ -2997,6 +3002,10 @@ static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx,
return fhSize;
}
ZSTDLIB_API double ZSTD_getCompletion(ZSTD_CCtx* cctx)
{
return cctx->completion;
}
size_t ZSTD_compressContinue (ZSTD_CCtx* cctx,
void* dst, size_t dstCapacity,
+5 -1
View File
@@ -808,7 +808,11 @@ ZSTDLIB_API size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx,
ZSTDLIB_API size_t ZSTD_compressContinue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
ZSTDLIB_API size_t ZSTD_compressEnd(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
/*! ZSTD_getCompletion: get a double representing how much of a file/buffer has been compressed
* using ZSTD_compressContinue()
* return: a double value in the range of 0 to 1 representing how much a compression job has finished
*/
ZSTDLIB_API double ZSTD_getCompletion(ZSTD_CCtx* cctx);
/*-
Buffer-less streaming decompression (synchronous mode)