else (
let len = String.length file in
let t = String.sub file 6 (len-slen-6) in
- try Some (int_of_string t) with Failure "int_of_string" -> None
+ (* Use int64 because t won't necessarily fit into 31 bit int. *)
+ try Some (Int64.of_string t)
+ with Failure "int_of_string" -> assert false
)
) files in
let times = List.rev (List.sort compare times) in
(* Unlink the older files. *)
List.iter (
fun t ->
- try unlink (dir // sprintf "jobs__%d%s" t suffix)
+ try unlink (dir // sprintf "jobs__%Ld%s" t suffix)
with Unix_error _ -> ()
) xs;
(* Return the newest (highest numbered) file. *)
- Some (dir // sprintf "jobs__%d%s" x suffix) in
+ Some (dir // sprintf "jobs__%Ld%s" x suffix) in
(* As we are reloading the file, we want to create a new state
* that has no jobs, but has all the variables from the previous