@@ -1019,21 +1019,21 @@ SeriesImpl::readGorVBased( bool do_init )
10191019
10201020 auto readSingleIteration =
10211021 [&series, &pOpen, this ]
1022- (uint64_t index, std::string path)
1022+ (uint64_t index, std::string path, bool guardClosed )
10231023 {
10241024 if ( series.iterations .contains ( index ) )
10251025 {
10261026 // maybe re-read
10271027 auto & i = series.iterations .at ( index );
1028- if ( i.closedByWriter () )
1028+ if ( guardClosed && i.closedByWriter () )
10291029 {
10301030 return ;
10311031 }
10321032 if ( *i.m_closed != Iteration::CloseStatus::NotYetAccessed )
10331033 {
10341034 pOpen.path = path;
10351035 IOHandler ()->enqueue ( IOTask ( &i, pOpen ) );
1036- i.read ();
1036+ i.read ( path, /* reread = */ true );
10371037 }
10381038 }
10391039 else
@@ -1063,7 +1063,7 @@ SeriesImpl::readGorVBased( bool do_init )
10631063 for ( auto const & it : *pList.paths )
10641064 {
10651065 uint64_t index = std::stoull ( it );
1066- readSingleIteration ( index, it );
1066+ readSingleIteration ( index, it, true );
10671067 }
10681068 break ;
10691069 case IterationEncoding::variableBased:
@@ -1075,7 +1075,7 @@ SeriesImpl::readGorVBased( bool do_init )
10751075 .getAttribute ( " __step__" )
10761076 .get < uint64_t >();
10771077 }
1078- readSingleIteration ( index, " " );
1078+ readSingleIteration ( index, " " , false );
10791079 break ;
10801080 }
10811081 }
0 commit comments