Merge pull request #1748 from terrelln/cover-deadlock
[dictBuilder] Fix deadlock in *COVER error case
This commit is contained in:
@@ -919,14 +919,13 @@ void COVER_best_finish(COVER_best_t *best, ZDICT_cover_params_t parameters,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Save the dictionary, parameters, and size */
|
/* Save the dictionary, parameters, and size */
|
||||||
if (!dict) {
|
if (dict) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
memcpy(best->dict, dict, dictSize);
|
memcpy(best->dict, dict, dictSize);
|
||||||
best->dictSize = dictSize;
|
best->dictSize = dictSize;
|
||||||
best->parameters = parameters;
|
best->parameters = parameters;
|
||||||
best->compressedSize = compressedSize;
|
best->compressedSize = compressedSize;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (liveJobs == 0) {
|
if (liveJobs == 0) {
|
||||||
ZSTD_pthread_cond_broadcast(&best->cond);
|
ZSTD_pthread_cond_broadcast(&best->cond);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -526,6 +526,15 @@ $ZSTD -o tmpDict --train "$TESTDIR"/*.c "$PRGDIR"/*.c
|
|||||||
test -f tmpDict
|
test -f tmpDict
|
||||||
$ZSTD --train "$TESTDIR"/*.c "$PRGDIR"/*.c
|
$ZSTD --train "$TESTDIR"/*.c "$PRGDIR"/*.c
|
||||||
test -f dictionary
|
test -f dictionary
|
||||||
|
println "- Test dictionary training fails"
|
||||||
|
echo "000000000000000000000000000000000" > tmpz
|
||||||
|
$ZSTD --train tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz && die "Dictionary training should fail : source is all zeros"
|
||||||
|
if [ -n "$hasMT" ]
|
||||||
|
then
|
||||||
|
$ZSTD --train -T0 tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz && die "Dictionary training should fail : source is all zeros"
|
||||||
|
println "- Create dictionary with multithreading enabled"
|
||||||
|
$ZSTD --train -T0 "$TESTDIR"/*.c "$PRGDIR"/*.c -o tmpDict
|
||||||
|
fi
|
||||||
rm tmp* dictionary
|
rm tmp* dictionary
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user