Skip to content

Commit cdb3253

Browse files
committed
submission: Add asserts to detect self-syncdep/unscheduled task
1 parent a10e23b commit cdb3253

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/submission.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,15 @@ function eager_submit_internal!(ctx, state, task, tid, payload; uid_to_tid=Dict{
7676
end
7777
for (idx, dep) in enumerate(syncdeps)
7878
newdep = if dep isa DTask
79+
@assert dep.uid != uid "Cannot depend on self"
7980
tid = if haskey(id_map, dep.uid)
8081
id_map[dep.uid]
8182
else
8283
uid_to_tid[dep.uid]
8384
end
8485
state.thunk_dict[tid]
8586
elseif dep isa Sch.ThunkID
87+
@assert dep.id != id "Cannot depend on self"
8688
tid = dep.id
8789
state.thunk_dict[tid]
8890
else
@@ -240,6 +242,8 @@ end
240242
chunktype(t::DTask) = t.metadata.return_type
241243

242244
function eager_launch!((spec, task)::Pair{DTaskSpec,DTask})
245+
@assert !istaskstarted(task) "Cannot launch a task that is already started"
246+
243247
# Assign a name, if specified
244248
eager_assign_name!(spec, task)
245249

@@ -261,6 +265,7 @@ function eager_launch!(specs::Vector{Pair{DTaskSpec,DTask}})
261265

262266
# Assign a name, if specified
263267
for (spec, task) in specs
268+
@assert !istaskstarted(task) "Cannot launch a task that is already started"
264269
eager_assign_name!(spec, task)
265270
end
266271

0 commit comments

Comments
 (0)