mirror of
https://github.com/facebook/zstd.git
synced 2025-07-17 12:37:51 +02:00
Fix AsyncIO reading seed queueing (#3940)
Fixes a bug in AsyncIO where we queue reads after opening a file so our queue will always be saturated (or as saturated as possible). Previous code was looping up to `availableJobsCount` not realizing `availableJobsCount` was also decreasing in each iteration, so instead of queueing 10 jobs we'd queue 5 (and instead of 2 we'd queue 1). This PR fixes the loop to queue as long as `availableJobsCount` is not 0.
This commit is contained in:
@ -514,8 +514,7 @@ static void AIO_ReadPool_enqueueRead(ReadPoolCtx_t* ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void AIO_ReadPool_startReading(ReadPoolCtx_t* ctx) {
|
static void AIO_ReadPool_startReading(ReadPoolCtx_t* ctx) {
|
||||||
int i;
|
while(ctx->base.availableJobsCount) {
|
||||||
for (i = 0; i < ctx->base.availableJobsCount; i++) {
|
|
||||||
AIO_ReadPool_enqueueRead(ctx);
|
AIO_ReadPool_enqueueRead(ctx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user