From fac26d37e7e0c9d2d1e3000256ab4641a6c9f95e Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Wed, 17 Dec 2014 14:18:40 +0100 Subject: CoqIDE: cleanup jobs window on worker death --- ide/session.ml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'ide') diff --git a/ide/session.ml b/ide/session.ml index 3acd32d7d2..4835307ec5 100644 --- a/ide/session.ml +++ b/ide/session.ml @@ -325,9 +325,15 @@ let create_jobpage coqtop coqops : jobpage = access (fun _ store -> store#clear ()); !callback jobs; CString.Map.iter (fun id job -> access (fun columns store -> - let line = store#append () in - store#set line (find_string_col "Worker" columns) id; - store#set line (find_string_col "Job name" columns) job)) + let column = find_string_col "Worker" columns in + if job = "Dead" then + store#foreach (fun _ row -> + if store#get ~row ~column = id then store#remove row || true + else false) + else + let line = store#append () in + store#set line column id; + store#set line (find_string_col "Job name" columns) job)) jobs end method on_update ~callback:cb = callback := cb -- cgit v1.2.3