@@ -2193,6 +2193,10 @@ creating new iterations.
21932193
21942194 auto currentSteps = currentSnapshot ();
21952195
2196+ TimeoutLazyParsing timeout{
2197+ series.m_parseLazily ? 0 : series.m_hintLazyParsingAfterTimeout };
2198+ size_t parsed_iterations = 0 ;
2199+
21962200 switch (iterationEncoding ())
21972201 {
21982202 case IterationEncoding::groupBased:
@@ -2211,6 +2215,10 @@ creating new iterations.
22112215 {
22122216 continue ;
22132217 }
2218+ if (!read_only_this_single_iteration.has_value ())
2219+ {
2220+ timeout.now (parsed_iterations, pList.paths ->size ());
2221+ }
22142222 if (auto err = internal::withRWAccess (
22152223 IOHandler ()->m_seriesStatus ,
22162224 [&]() {
@@ -2234,6 +2242,7 @@ creating new iterations.
22342242 {
22352243 readableIterations.push_back (index);
22362244 }
2245+ ++parsed_iterations;
22372246 }
22382247 if (currentSteps.has_value ())
22392248 {
@@ -2290,6 +2299,10 @@ creating new iterations.
22902299
22912300 for (auto it : *currentSteps)
22922301 {
2302+ if (!read_only_this_single_iteration.has_value ())
2303+ {
2304+ timeout.now (parsed_iterations, pList.paths ->size ());
2305+ }
22932306 /*
22942307 * Variable-based iteration encoding relies on steps, so parsing
22952308 * must happen after opening the first step.
@@ -2317,6 +2330,7 @@ creating new iterations.
23172330 */
23182331 throw *err;
23192332 }
2333+ ++parsed_iterations;
23202334 }
23212335 return *currentSteps;
23222336 }
0 commit comments