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:
Yonatan Komornik 2024-03-11 16:28:32 -07:00 committed by GitHub
parent a4db145900
commit edab9eed66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -514,8 +514,7 @@ static void AIO_ReadPool_enqueueRead(ReadPoolCtx_t* ctx) {
}
static void AIO_ReadPool_startReading(ReadPoolCtx_t* ctx) {
int i;
for (i = 0; i < ctx->base.availableJobsCount; i++) {
while(ctx->base.availableJobsCount) {
AIO_ReadPool_enqueueRead(ctx);
}
}