From c12bcc423e45367bbb8c8fd757a5732856c42c78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr>
Date: Wed, 29 Jan 2020 15:03:12 +0100
Subject: [PATCH] [DB] Daemons are not triggered one last time at the end

     It simplifies and is not really needed
---
 src/kernel_services/plugin_entry_points/db.ml  | 18 +++++-------------
 src/kernel_services/plugin_entry_points/db.mli |  5 ++---
 2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/src/kernel_services/plugin_entry_points/db.ml b/src/kernel_services/plugin_entry_points/db.ml
index 965b348aa2a..03651ec435e 100644
--- a/src/kernel_services/plugin_entry_points/db.ml
+++ b/src/kernel_services/plugin_entry_points/db.ml
@@ -1104,20 +1104,12 @@ let warn_error exn =
 
 let with_progress ?debounced ?delayed trigger job data =
   let d = on_progress ?debounced ?delayed trigger in
-  let result = try job data with e ->
-    off_progress d ;
-    (try trigger () with
-     (* re-raise job processing exception in all case *)
-     | Cancel ->
-       (* job exception is also a canceling action *)
-       ()
-     | exn ->
-       (* job exception is more interesting to re-raise *)
-       warn_error exn) ;
-    raise e
+  let result =
+    try job data with e ->
+      off_progress d ;
+      raise e
   in
-  (* final trigger is allowed to cancel any englobing jobs *)
-  off_progress d ; trigger () ; result
+  off_progress d ; result
 
 (* ---- Yielding ---- *)
 
diff --git a/src/kernel_services/plugin_entry_points/db.mli b/src/kernel_services/plugin_entry_points/db.mli
index 4dc4801d439..63cda45fa1f 100644
--- a/src/kernel_services/plugin_entry_points/db.mli
+++ b/src/kernel_services/plugin_entry_points/db.mli
@@ -1381,15 +1381,14 @@ val cancel : unit -> unit
    {[
        job data :    |<-------------------------------------------------->|<daemon removed>
        yields   :       x   x  x x    x             x   x    x   xxx xxx
-       trigger  :       |..........   |..........   |..........  |........|..
+       trigger  :       |..........   |..........   |..........  |...........
        delayed  :                                   !
-       notes    :      (1)           (2)           (3)                   (4)
+       notes    :      (1)           (2)           (3)
    ]}
 
    1. First yield, normal trigger
    2. Debounced yields leads to this second trigger
    3. Delayed warning invoked since there was no yield for more than debounced period
-   4. Final trigger, a bit before the debounced time
 *)
 val with_progress : ?debounced:int -> ?delayed:(int -> unit) ->
   (unit -> unit) -> ('a -> 'b) -> 'a -> 'b
-- 
GitLab