Skip to content

Commit 06ad818

Browse files
committed
close plotqueues on clear_obs!
1 parent f8d8530 commit 06ad818

File tree

5 files changed

+19
-13
lines changed

5 files changed

+19
-13
lines changed

NetworkDynamicsInspector/src/NetworkDynamicsInspector.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ function get_webapp(app)
6565
@info "GUI Session updated"
6666
end
6767

68-
clear_obs!(app)
68+
clear_obs_and_close!(app)
6969

7070
resize_with_gp = js"""
7171
const graphplotCard = document.querySelector(".graphplot-card");
@@ -139,7 +139,7 @@ function inspect(sol; restart=false, reset=false, display=CURRENT_DISPLAY[])
139139
CURRENT_DISPLAY[] = display
140140

141141
appstate = if reset || isnothing(APPSTATE[])
142-
isnothing(APPSTATE[]) || clear_obs!(APPSTATE[])
142+
isnothing(APPSTATE[]) || clear_obs_and_close!(APPSTATE[])
143143
AppState(sol)
144144
else
145145
APPSTATE[].sol[] = sol

NetworkDynamicsInspector/src/utils.jl

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,34 @@ function gen_state_options(nw::Network, sidxs)
2727
options
2828
end
2929

30-
function clear_obs!(x::Union{NamedTuple, AbstractDict})
30+
function clear_obs_and_close!(x::Union{NamedTuple, AbstractDict})
3131
for v in values(x)
32-
clear_obs!(v)
32+
clear_obs_and_close!(v)
3333
end
3434
end
35-
function clear_obs!(obs::Observable)
35+
function clear_obs_and_close!(obs::Observable)
3636
empty!(obs.listeners)
37-
clear_obs!(obs.val)
37+
clear_obs_and_close!(obs.val)
3838
end
39-
function clear_obs!(v::AbstractVector)
39+
function clear_obs_and_close!(v::AbstractVector)
4040
for el in v
41-
clear_obs!(el)
41+
clear_obs_and_close!(el)
4242
end
4343
end
44-
function clear_obs!(x::T) where {T}
44+
function clear_obs_and_close!(x::T) where {T}
4545
if T <: Union{GraphPlot, TimeseriesPlot, AppState}
4646
for f in fieldnames(T)
47-
clear_obs!(getfield(x, f))
47+
clear_obs_and_close!(getfield(x, f))
4848
end
4949
end
5050
x
5151
end
52+
function clear_obs_and_close!(of::Observables.ObserverFunction)
53+
Observables.off(of)
54+
end
55+
function clear_obs_and_close!(ch::Channel)
56+
close(ch)
57+
end
5258

5359
NetworkDynamics.extract_nw(o::Observable) = extract_nw(o.val)
5460
function NetworkDynamics.extract_nw(o::NamedTuple)

NetworkDynamicsInspector/test/multiselect_test.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ end
2828
selection_single = Observable{Vector{Symbol}}(Symbol[:Julia])
2929
)
3030
disp = App(;) do session
31-
NetworkDynamicsInspector.clear_obs!(gui)
31+
NetworkDynamicsInspector.clear_obs_and_close!(gui)
3232

3333
ms1 = TomSelect(gui.options, gui.selection; placeholder="multi", T=Symbol)
3434
ms2 = TomSelect(gui.options, gui.selection_single; placeholder="single", multi=false, T=Symbol)

NetworkDynamicsInspector/test/slider_test.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ end
2222
)
2323

2424
disp = App(;) do session
25-
NetworkDynamicsInspector.clear_obs!(gui)
25+
NetworkDynamicsInspector.clear_obs_and_close!(gui)
2626
sl1 = ContinuousSlider(gui.range, gui.val1, gui.val2)
2727
sl2 = ContinuousSlider(gui.range, gui.val; arrowkeys=true)
2828

NetworkDynamicsInspector/test/toggle_test.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ using NetworkDynamicsInspector, Bonito
33
tog = Observable{Bool}(true)
44
let
55
_app = App() do session
6-
NetworkDynamicsInspector.clear_obs!(tog)
6+
NetworkDynamicsInspector.clear_obs_and_close!(tog)
77
toggle = NetworkDynamicsInspector.ToggleSwitch(value=tog, label="Toggle me")
88
on(toggle.value) do state
99
@info "value = $state"

0 commit comments

Comments
 (0)