]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
change compression level only right before actually performing compression. When...
authorPaul Cruz <paulcruz74@fb.com>
Wed, 19 Jul 2017 17:14:00 +0000 (10:14 -0700)
committerPaul Cruz <paulcruz74@fb.com>
Wed, 19 Jul 2017 17:14:00 +0000 (10:14 -0700)
contrib/adaptive-compression/adapt.c

index de2e5e1397ac50d5389b3929ba1ac532bc3b02a6..b928d0a2c4ba96ab393cf54c98da8a0da86632f0 100644 (file)
@@ -424,7 +424,6 @@ static void* compressionThread(void* arg)
             pthread_mutex_lock(&ctx->completion_mutex.pMutex);
             ctx->createCompletionMeasured = 1;
             pthread_mutex_unlock(&ctx->completion_mutex.pMutex);
-            adaptCompressionLevel(ctx);
             DEBUG(3, "waiting on job ready, nextJob: %u\n", currJob);
             pthread_cond_wait(&ctx->jobReady_cond.pCond, &ctx->jobReady_mutex.pMutex);
         }
@@ -434,6 +433,7 @@ static void* compressionThread(void* arg)
         DEBUG(3, "%.*s", (int)job->src.size, (char*)job->src.start);
         /* compress the data */
         {
+            adaptCompressionLevel(ctx);
             unsigned const cLevel = ctx->compressionLevel;
             DEBUG(3, "cLevel used: %u\n", cLevel);
             DEBUG(3, "compression level used: %u\n", cLevel);
@@ -530,7 +530,6 @@ static void* outputThread(void* arg)
                 DEBUG(3, "output detected completion: %f\n", ctx->compressionCompletion);
             }
             pthread_mutex_unlock(&ctx->completion_mutex.pMutex);
-            adaptCompressionLevel(ctx);
             DEBUG(3, "waiting on job compressed, nextJob: %u\n", currJob);
             pthread_cond_wait(&ctx->jobCompressed_cond.pCond, &ctx->jobCompressed_mutex.pMutex);
         }
@@ -611,7 +610,6 @@ static int createCompressionJob(adaptCCtx* ctx, size_t srcSize, int last)
         pthread_mutex_lock(&ctx->completion_mutex.pMutex);
         ctx->writeCompletionMeasured = 1;
         pthread_mutex_unlock(&ctx->completion_mutex.pMutex);
-        adaptCompressionLevel(ctx);
         DEBUG(3, "waiting on job Write, nextJob: %u\n", nextJob);
         pthread_cond_wait(&ctx->jobWrite_cond.pCond, &ctx->jobWrite_mutex.pMutex);
     }