@@ -310,10 +310,10 @@ let mark_backtrack proc time state (last_read, last_write) =
310310 | Some lst -> List. length lst > List. length replay_steps
311311 then pre_s.backtrack < - IdMap. add j replay_steps pre_s.backtrack
312312
313- let map_diff_set map set =
313+ let map_subtract_set map set =
314314 IdMap. filter (fun key _ -> not (IdSet. mem key set)) map
315315
316- let rec explore func time state (explored , state_planned ) current_schedule clock (last_read , last_write ) =
316+ let rec explore func time state (explored , state_planned ) current_schedule (last_read , last_write ) =
317317 let s = List. hd state in
318318 assert (IdMap. is_empty s.backtrack) ;
319319 let dones = ref IdSet. empty in
@@ -329,11 +329,10 @@ let rec explore func time state (explored, state_planned) current_schedule clock
329329 s.backtrack < - IdMap. singleton proc_id state_planned
330330 end ;
331331 let is_backtracking = ref false in
332- while IdMap. (cardinal (map_diff_set s.backtrack ! dones)) > 0 do
333- let j, new_steps = IdMap. min_binding (map_diff_set s.backtrack ! dones) in
334- let new_explored =
335- if ! is_backtracking || state_planned <> [] then ! dones else IdSet. empty in
336- dones := IdSet. add j ! dones;
332+ while IdMap. (cardinal (map_subtract_set s.backtrack ! dones)) > 0 do
333+ let j, new_steps = IdMap. min_binding (map_subtract_set s.backtrack ! dones) in
334+ let new_explored = ! dones in
335+ dones := IdSet. add j new_explored;
337336 let new_step, new_state_planned =
338337 match new_steps with
339338 | [] -> assert false
@@ -374,8 +373,7 @@ let rec explore func time state (explored, state_planned) current_schedule clock
374373 | Read_write , Some ptr -> add ptr last_read, add ptr last_write
375374 | _ -> assert false
376375 in
377- let new_clock = IdMap. add j new_time clock in
378- explore func new_time new_state (new_explored, new_state_planned) new_schedule new_clock new_last_access
376+ explore func new_time new_state (new_explored, new_state_planned) new_schedule new_last_access
379377 done
380378
381379let every f =
@@ -406,9 +404,8 @@ let trace func =
406404 setup_run func empty_schedule ;
407405 let empty_state = do_run empty_schedule :: [] in
408406 let empty_state_planned = (IdSet. empty, [] ) in
409- let empty_clock = IdMap. empty in
410407 let empty_last_access = IdMap. empty, IdMap. empty in
411- try explore func 1 empty_state empty_state_planned empty_schedule empty_clock empty_last_access
408+ try explore func 1 empty_state empty_state_planned empty_schedule empty_last_access
412409 with exn ->
413410 Format. printf " Found error at run %d:@." ! num_runs;
414411 print_trace () ;
0 commit comments