Skip to content
Snippets Groups Projects
Commit 691d84e6 authored by Loïc Correnson's avatar Loïc Correnson
Browse files

[server] states gc on signal

parent 266e9339
No related branches found
No related tags found
No related merge requests found
...@@ -109,9 +109,14 @@ let synchronize model = ...@@ -109,9 +109,14 @@ let synchronize model =
Hashtbl.remove model.projects (Project.get_unique_name p) in Hashtbl.remove model.projects (Project.get_unique_name p) in
Project.register_before_remove_hook cleanup ; Project.register_before_remove_hook cleanup ;
Project.register_todo_before_clear cleanup ; Project.register_todo_before_clear cleanup ;
Request.on_signal model.signal
(fun _ ->
model.current <- None ;
Hashtbl.clear model.projects ;
);
end end
let current model = let content model =
match model.current with match model.current with
| Some w -> w | Some w -> w
| None -> | None ->
...@@ -127,16 +132,26 @@ let current model = ...@@ -127,16 +132,26 @@ let current model =
in model.current <- Some content ; content in model.current <- Some content ; content
let reload model = let reload model =
let m = current model in let m = content model in
m.cleared <- true ; m.updates <- Kmap.empty m.cleared <- true ;
m.updates <- Kmap.empty ;
Request.emit model.signal
let update model k = let update model k =
let m = current model in let m = content model in
if not m.cleared then m.updates <- Kmap.add (model.key k) (Add k) m.updates if not m.cleared then
begin
m.updates <- Kmap.add (model.key k) (Add k) m.updates ;
Request.emit model.signal ;
end
let remove model k = let remove model k =
let m = current model in let m = content model in
if not m.cleared then m.updates <- Kmap.add (model.key k) Remove m.updates if not m.cleared then
begin
m.updates <- Kmap.add (model.key k) Remove m.updates ;
Request.emit model.signal ;
end
(* -------------------------------------------------------------------------- *) (* -------------------------------------------------------------------------- *)
(* --- Fetch Model Updates --- *) (* --- Fetch Model Updates --- *)
...@@ -167,7 +182,7 @@ let update_entry buffer cols key = function ...@@ -167,7 +182,7 @@ let update_entry buffer cols key = function
| Add v -> add_entry buffer cols key v | Add v -> add_entry buffer cols key v
let fetch model n = let fetch model n =
let m = current model in let m = content model in
let reload = m.cleared in let reload = m.cleared in
let buffer = { let buffer = {
reload ; reload ;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment