File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -314,14 +314,21 @@ let mark_backtrack proc time state (last_read, last_write) =
314314let map_diff_set map set =
315315 IdMap. filter (fun key _ -> not (IdSet. mem key set)) map
316316
317+ let round_robin previous =
318+ let id = previous.run.proc_id in
319+ match IdSet. find_first_opt (fun j -> j > id) previous.enabled with
320+ | None -> IdSet. min_elt_opt previous.enabled
321+ | found -> found
322+
317323let rec explore func time state (explored , state_planned ) current_schedule clock (last_read , last_write ) =
318324 let s = List. hd state in
319325 assert (IdMap. is_empty s.backtrack) ;
320326 let dones = ref IdSet. empty in
321327 begin match state_planned with
322328 | [] ->
323- if IdSet. cardinal s.enabled > 0 then begin
324- let p = IdSet. min_elt s.enabled in
329+ begin match round_robin s with
330+ | None -> assert (IdSet. is_empty s.enabled)
331+ | Some p ->
325332 let init_step = IdMap. find p s.procs in
326333 s.backtrack < - IdMap. singleton p [init_step] ;
327334 end
You can’t perform that action at this time.
0 commit comments