@@ -150,7 +150,7 @@ sequential_int_generator(Ref, MaxValue, Id, DisableProgress) ->
150150 % % dictionary to keep track of where we are.
151151 case erlang :get ({sigen , Ref }) of
152152 undefined ->
153- seq_gen_put (Ref , seq_gen_read_resume_value (Id )),
153+ seq_gen_put (Ref , seq_gen_read_resume_value (Id , MaxValue )),
154154 sequential_int_generator (Ref , MaxValue , Id , DisableProgress );
155155 MaxValue ->
156156 throw ({stop , empty_keygen });
@@ -186,7 +186,7 @@ seq_gen_write_resume_value(Id, Value) ->
186186 ok = file :rename (OutFileTmp , OutFile )
187187 end .
188188
189- seq_gen_read_resume_value (Id ) ->
189+ seq_gen_read_resume_value (Id , MaxValue ) ->
190190 case seq_gen_state_dir (Id ) of
191191 " " ->
192192 0 ;
@@ -195,8 +195,14 @@ seq_gen_read_resume_value(Id) ->
195195 InFile = Path ++ " /" ++ integer_to_list (Id ),
196196 {ok , Bin } = file :read_file (InFile ),
197197 Value = binary_to_term (Bin ),
198- ? DEBUG (" Id ~p resuming from value ~p \n " , [Id , Value ]),
199- Value
198+ case Value > MaxValue of
199+ true ->
200+ ? WARN (" Id ~p resume value ~p exceeds maximum value ~p . Restarting from 0" ,[Id , Value , MaxValue ]),
201+ 0 ;
202+ false ->
203+ ? DEBUG (" Id ~p resuming from value ~p \n " , [Id , Value ]),
204+ Value
205+ end
200206 catch
201207 error :{badmatch , _ } ->
202208 0 ;
0 commit comments