Mise à jour terminée. Pour connaître les apports de la version 13.8.4 par rapport à notre ancienne version vous pouvez lire les "Release Notes" suivantes :
https://about.gitlab.com/releases/2021/02/11/security-release-gitlab-13-8-4-released/
https://about.gitlab.com/releases/2021/02/05/gitlab-13-8-3-released/

Commit bfb2abe8 authored by François Bobot's avatar François Bobot

whybench : use maximum_running_proofs of why.conf

Scheduler : add flag scheduler
parent cce88691
...@@ -203,7 +203,7 @@ let () = ...@@ -203,7 +203,7 @@ let () =
let main = get_main config in let main = get_main config in
Whyconf.load_plugins main; Whyconf.load_plugins main;
Scheduler.maximum_running_proofs := Whyconf.running_provers_max main;
(** listings*) (** listings*)
let opt_list = ref false in let opt_list = ref false in
...@@ -373,18 +373,18 @@ let count_result = ...@@ -373,18 +373,18 @@ let count_result =
Mnm.add res.B.tool tr m in Mnm.add res.B.tool tr m in
List.fold_left fold m List.fold_left fold m
let () = let () = Scheduler.async := (fun f v -> ignore (Thread.create f v))
(** WHY some outputs are mixed, altought there is a mutex? *)
let m = Mutex.create () in
Scheduler.async := (fun f v ->
let f v = Mutex.lock m; f v; Mutex.unlock m in
ignore (Thread.create f v))
let () = let () =
let m = Mutex.create () in
let callback tool prob task i res = let callback tool prob task i res =
eprintf "%s %a %i with %s : %a@." Mutex.lock m;
printf "%s %a %i with %s : %a@."
prob Pretty.print_pr (task_goal task) i tool prob Pretty.print_pr (task_goal task) i tool
Scheduler.print_pas res in Scheduler.print_pas res;
Mutex.unlock m
in
let l = B.all_list ~callback !tools !probs in let l = B.all_list ~callback !tools !probs in
(* let print_result fmt res = *) (* let print_result fmt res = *)
(* fprintf fmt "%s %a %i with %s : %a@." *) (* fprintf fmt "%s %a %i with %s : %a@." *)
......
...@@ -8,6 +8,8 @@ let coef_buf = 2 ...@@ -8,6 +8,8 @@ let coef_buf = 2
let async = ref (fun f () -> f ()) let async = ref (fun f () -> f ())
let debug = Debug.register_flag "scheduler"
type proof_attempt_status = type proof_attempt_status =
| Scheduled (** external proof attempt is scheduled *) | Scheduled (** external proof attempt is scheduled *)
| Running (** external proof attempt is in progress *) | Running (** external proof attempt is in progress *)
...@@ -158,6 +160,9 @@ let event_handler () = ...@@ -158,6 +160,9 @@ let event_handler () =
Queue.pop prover_attempts_queue Queue.pop prover_attempts_queue
in in
incr scheduled_proofs; incr scheduled_proofs;
Debug.dprintf debug
"scheduled_proofs = %i; maximum_running_proofs = %i@."
!scheduled_proofs !maximum_running_proofs;
Mutex.unlock queue_lock; Mutex.unlock queue_lock;
(* build the prover task from goal in [a] *) (* build the prover task from goal in [a] *)
!async (fun () -> callback Scheduled) (); !async (fun () -> callback Scheduled) ();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment