]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
moved reset of completion to right after wait
authorPaul Cruz <paulcruz74@fb.com>
Wed, 26 Jul 2017 17:34:48 +0000 (10:34 -0700)
committerPaul Cruz <paulcruz74@fb.com>
Wed, 26 Jul 2017 17:34:48 +0000 (10:34 -0700)
contrib/adaptive-compression/adapt.c

index d75660806e20fe8e8be1daf58b5c3acd35d0beeb..237bb43063c6712362177fe49c682d3db8be9f96 100644 (file)
@@ -678,10 +678,6 @@ static int createCompressionJob(adaptCCtx* ctx, size_t srcSize, int last)
     jobDescription* const job = &ctx->jobs[nextJobIndex];
 
 
-    /* reset create completion */
-    pthread_mutex_lock(&ctx->createCompletion_mutex.pMutex);
-    ctx->createCompletion = 0;
-    pthread_mutex_unlock(&ctx->createCompletion_mutex.pMutex);
     job->compressionLevel = ctx->compressionLevel;
     job->src.size = srcSize;
     job->jobID = nextJob;
@@ -761,6 +757,11 @@ static int performCompression(adaptCCtx* ctx, FILE* const srcFile, outputThreadA
             }
             pthread_mutex_unlock(&ctx->jobCompressed_mutex.pMutex);
 
+            /* reset create completion */
+            pthread_mutex_lock(&ctx->createCompletion_mutex.pMutex);
+            ctx->createCompletion = 0;
+            pthread_mutex_unlock(&ctx->createCompletion_mutex.pMutex);
+
             while (remaining != 0 && !feof(srcFile)) {
                 size_t const ret = fread(ctx->input.buffer.start + ctx->input.filled + pos, 1, readBlockSize, srcFile);
                 if (ret != readBlockSize && !feof(srcFile)) {