From: Yann Collet Date: Sun, 1 Jan 2017 23:49:42 +0000 (+0100) Subject: minor fixes X-Git-Tag: v1.1.3^2~19^2~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ec6a95ba126978567fafc02f839064c60b74b9d;p=thirdparty%2Fzstd.git minor fixes --- diff --git a/lib/compress/zstdmt_compress.c b/lib/compress/zstdmt_compress.c index b9cc81f67..294ce86d4 100644 --- a/lib/compress/zstdmt_compress.c +++ b/lib/compress/zstdmt_compress.c @@ -123,12 +123,12 @@ void ZSTDMT_compressFrame(void* jobDescription) { DEBUGLOG(5, "Entering ZSTDMT_compressFrame() "); ZSTDMT_jobDescription* const job = (ZSTDMT_jobDescription*)jobDescription; - DEBUGLOG(5, "compressing %u bytes with ZSTD_compressCCtx : ", (unsigned)job->srcSize); + DEBUGLOG(5, "compressing %u bytes from frame %u with ZSTD_compressCCtx : ", (unsigned)job->srcSize, job->jobCompleted); job->cSize = ZSTD_compressCCtx(job->cctx, job->dstBuff.start, job->dstBuff.size, job->srcStart, job->srcSize, job->compressionLevel); DEBUGLOG(5, "compressed to %u bytes ", (unsigned)job->cSize); - job->jobCompleted = 1; DEBUGLOG(5, "sending jobCompleted signal"); pthread_mutex_lock(job->jobCompleted_mutex); + job->jobCompleted = 1; pthread_cond_signal(job->jobCompleted_cond); pthread_mutex_unlock(job->jobCompleted_mutex); DEBUGLOG(5, "ZSTDMT_compressFrame completed"); @@ -215,6 +215,7 @@ size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx) /* incompleted ! */ ZSTDMT_freeBufferPool(mtctx->buffPool); ZSTDMT_freeCCtxPool(mtctx->cctxPool); pthread_mutex_destroy(&mtctx->jobCompleted_mutex); + pthread_cond_destroy(&mtctx->jobCompleted_cond); free(mtctx); return 0; } diff --git a/lib/zstd.h b/lib/zstd.h index 333feff7d..55cc466d7 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -369,9 +369,9 @@ typedef struct { } ZSTD_compressionParameters; typedef struct { - unsigned contentSizeFlag; /**< 1: content size will be in frame header (if known). */ - unsigned checksumFlag; /**< 1: will generate a 22-bits checksum at end of frame, to be used for error detection by decompressor */ - unsigned noDictIDFlag; /**< 1: no dict ID will be saved into frame header (if dictionary compression) */ + unsigned contentSizeFlag; /**< 1: content size will be in frame header (when known) */ + unsigned checksumFlag; /**< 1: generate a 32-bits checksum at end of frame, for error detection */ + unsigned noDictIDFlag; /**< 1: no dictID will be saved into frame header (if dictionary compression) */ } ZSTD_frameParameters; typedef struct { diff --git a/programs/bench.c b/programs/bench.c index c718e2199..e846e9ef3 100644 --- a/programs/bench.c +++ b/programs/bench.c @@ -91,12 +91,12 @@ static clock_t g_time = 0; /* ************************************* * Time ***************************************/ -/* for posix only - proper detection macros to setup */ +/* for posix only - needs proper detection macros to setup */ #include #include typedef unsigned long long clock_us_t; -static clock_us_t BMK_clockMicroSec() +static clock_us_t BMK_clockMicroSec(void) { static clock_t _ticksPerSecond = 0; if (_ticksPerSecond <= 0) _ticksPerSecond = sysconf(_SC_CLK_TCK); @@ -235,7 +235,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, /* Bench */ { U64 fastestC = (U64)(-1LL), fastestD = (U64)(-1LL); U64 const crcOrig = g_decodeOnly ? 0 : XXH64(srcBuffer, srcSize, 0); - UTIL_time_t coolTime; + clock_us_t coolTime = BMK_clockMicroSec(); U64 const maxTime = (g_nbSeconds * TIMELOOP_MICROSEC) + 1; U64 totalCTime=0, totalDTime=0; U32 cCompleted=g_decodeOnly, dCompleted=0; @@ -245,15 +245,14 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, ZSTDMT_CCtx* const mtcctx = ZSTDMT_createCCtx(g_nbThreads); - UTIL_getTime(&coolTime); DISPLAYLEVEL(2, "\r%79s\r", ""); while (!cCompleted || !dCompleted) { /* overheat protection */ - if (UTIL_clockSpanMicro(coolTime, ticksPerSecond) > ACTIVEPERIOD_MICROSEC) { + if (BMK_clockMicroSec() - coolTime > ACTIVEPERIOD_MICROSEC) { DISPLAYLEVEL(2, "\rcooling down ... \r"); UTIL_sleep(COOLPERIOD_SEC); - UTIL_getTime(&coolTime); + coolTime = BMK_clockMicroSec(); } if (!g_decodeOnly) {