in src/parallel-process-queue.ts [103:148]
function processFindFilesResponse(
pid: number,
response: ParallelProcess.FindFilesResponse,
) {
const requestId = response.requestId;
const currentCount = requestIdToCount.get(requestId, 0);
if (currentCount == 0) {
return;
}
requestIdToCount = requestIdToCount.set(requestId, currentCount - 1);
const source = requestIdToSequenceSource.get(requestId);
if (source) {
for (var i = 0; i < response.foundFilePaths.length; i++) {
source.nextValue(response.foundFilePaths[i]);
}
}
for (var j = 0; j < response.foundDirectoriesToSearch.length; j++) {
const directoryToScan: File.AbsoluteFilePath =
response.foundDirectoriesToSearch[j];
const queueRequest: ParallelProcess.Request = {
requestType: ParallelProcess.RequestType.findFilesRequest,
findFilesRequest: {
requestId: requestId,
directoryToSearch: directoryToScan,
fileExtension: response.fileExtension,
},
};
dispatchFindFilesRequest(queueRequest);
}
requestIdToCount = requestIdToCount.set(
requestId,
currentCount - 1 + response.foundDirectoriesToSearch.length,
);
if (requestIdToCount.get(requestId, 0) === 0) {
if (source) {
source.finished();
}
requestIdToCount = requestIdToCount.remove(requestId);
requestIdToSequenceSource = requestIdToSequenceSource.remove(requestId);
}
}