You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/sch/Sch.jl
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,7 @@ Fields:
47
47
- `waiting_data::Dict{Union{Thunk,Chunk},Set{Thunk}}` - Map from input `Chunk`/upstream `Thunk` to all unfinished downstream `Thunk`s, to retain caches
48
48
- `ready::Vector{Thunk}` - The list of `Thunk`s that are ready to execute
49
49
- `cache::WeakKeyDict{Thunk, Any}` - Maps from a finished `Thunk` to it's cached result, often a DRef
50
+
- `valid::WeakKeyDict{Thunk, Nothing}` - Tracks all `Thunk`s that are in a valid scheduling state
50
51
- `running::Set{Thunk}` - The set of currently-running `Thunk`s
51
52
- `running_on::Dict{Thunk,OSProc}` - Map from `Thunk` to the OS process executing it
52
53
- `thunk_dict::Dict{Int, WeakThunk}` - Maps from thunk IDs to a `Thunk`
@@ -70,6 +71,7 @@ struct ComputeState
70
71
waiting_data::Dict{Union{Thunk,Chunk},Set{Thunk}}
71
72
ready::Vector{Thunk}
72
73
cache::WeakKeyDict{Thunk, Any}
74
+
valid::WeakKeyDict{Thunk, Nothing}
73
75
running::Set{Thunk}
74
76
running_on::Dict{Thunk,OSProc}
75
77
thunk_dict::Dict{Int, WeakThunk}
@@ -93,7 +95,8 @@ function start_state(deps::Dict, node_order, chan)
93
95
OneToMany(),
94
96
deps,
95
97
Vector{Thunk}(undef, 0),
96
-
Dict{Thunk, Any}(),
98
+
WeakKeyDict{Thunk, Any}(),
99
+
WeakKeyDict{Thunk, Nothing}(),
97
100
Set{Thunk}(),
98
101
Dict{Thunk,OSProc}(),
99
102
Dict{Int, WeakThunk}(),
@@ -119,6 +122,7 @@ function start_state(deps::Dict, node_order, chan)
0 commit comments