1- mutable struct EagerTaskSpec
1+ mutable struct DTaskSpec
22 f
33 args:: Vector{Pair{Union{Symbol,Nothing},Any}}
44 options:: NamedTuple
@@ -8,25 +8,25 @@ abstract type AbstractTaskQueue end
88
99function enqueue! end
1010
11- struct EagerTaskQueue <: AbstractTaskQueue end
12- enqueue! (:: EagerTaskQueue , spec:: Pair{EagerTaskSpec ,DTask} ) =
11+ struct DefaultTaskQueue <: AbstractTaskQueue end
12+ enqueue! (:: DefaultTaskQueue , spec:: Pair{DTaskSpec ,DTask} ) =
1313 eager_launch! (spec)
14- enqueue! (:: EagerTaskQueue , specs:: Vector{Pair{EagerTaskSpec ,DTask}} ) =
14+ enqueue! (:: DefaultTaskQueue , specs:: Vector{Pair{DTaskSpec ,DTask}} ) =
1515 eager_launch! (specs)
1616
17- enqueue! (spec:: Pair{EagerTaskSpec ,DTask} ) =
18- enqueue! (get_options (:task_queue , EagerTaskQueue ()), spec)
19- enqueue! (specs:: Vector{Pair{EagerTaskSpec ,DTask}} ) =
20- enqueue! (get_options (:task_queue , EagerTaskQueue ()), specs)
17+ enqueue! (spec:: Pair{DTaskSpec ,DTask} ) =
18+ enqueue! (get_options (:task_queue , DefaultTaskQueue ()), spec)
19+ enqueue! (specs:: Vector{Pair{DTaskSpec ,DTask}} ) =
20+ enqueue! (get_options (:task_queue , DefaultTaskQueue ()), specs)
2121
2222struct LazyTaskQueue <: AbstractTaskQueue
23- tasks:: Vector{Pair{EagerTaskSpec ,DTask}}
24- LazyTaskQueue () = new (Pair{EagerTaskSpec ,DTask}[])
23+ tasks:: Vector{Pair{DTaskSpec ,DTask}}
24+ LazyTaskQueue () = new (Pair{DTaskSpec ,DTask}[])
2525end
26- function enqueue! (queue:: LazyTaskQueue , spec:: Pair{EagerTaskSpec ,DTask} )
26+ function enqueue! (queue:: LazyTaskQueue , spec:: Pair{DTaskSpec ,DTask} )
2727 push! (queue. tasks, spec)
2828end
29- function enqueue! (queue:: LazyTaskQueue , specs:: Vector{Pair{EagerTaskSpec ,DTask}} )
29+ function enqueue! (queue:: LazyTaskQueue , specs:: Vector{Pair{DTaskSpec ,DTask}} )
3030 append! (queue. tasks, specs)
3131end
3232function spawn_bulk (f:: Base.Callable )
@@ -44,7 +44,7 @@ struct InOrderTaskQueue <: AbstractTaskQueue
4444 InOrderTaskQueue (upper_queue) = new (upper_queue,
4545 Set {DTask} ())
4646end
47- function _add_prev_deps! (queue:: InOrderTaskQueue , spec:: EagerTaskSpec )
47+ function _add_prev_deps! (queue:: InOrderTaskQueue , spec:: DTaskSpec )
4848 # Add previously-enqueued task(s) to this task's syncdeps
4949 opts = spec. options
5050 syncdeps = get (Set{Any}, opts, :syncdeps )
@@ -53,15 +53,15 @@ function _add_prev_deps!(queue::InOrderTaskQueue, spec::EagerTaskSpec)
5353 end
5454 spec. options = merge (opts, (;syncdeps,))
5555end
56- function enqueue! (queue:: InOrderTaskQueue , spec:: Pair{EagerTaskSpec ,DTask} )
56+ function enqueue! (queue:: InOrderTaskQueue , spec:: Pair{DTaskSpec ,DTask} )
5757 if length (queue. prev_tasks) > 0
5858 _add_prev_deps! (queue, first (spec))
5959 empty! (queue. prev_tasks)
6060 end
6161 push! (queue. prev_tasks, last (spec))
6262 enqueue! (queue. upper_queue, spec)
6363end
64- function enqueue! (queue:: InOrderTaskQueue , specs:: Vector{Pair{EagerTaskSpec ,DTask}} )
64+ function enqueue! (queue:: InOrderTaskQueue , specs:: Vector{Pair{DTaskSpec ,DTask}} )
6565 if length (queue. prev_tasks) > 0
6666 for (spec, task) in specs
6767 _add_prev_deps! (queue, spec)
@@ -74,26 +74,26 @@ function enqueue!(queue::InOrderTaskQueue, specs::Vector{Pair{EagerTaskSpec,DTas
7474 enqueue! (queue. upper_queue, specs)
7575end
7676function spawn_sequential (f:: Base.Callable )
77- queue = InOrderTaskQueue (get_options (:task_queue , EagerTaskQueue ()))
77+ queue = InOrderTaskQueue (get_options (:task_queue , DefaultTaskQueue ()))
7878 return with_options (f; task_queue= queue)
7979end
8080
8181struct WaitAllQueue <: AbstractTaskQueue
8282 upper_queue:: AbstractTaskQueue
8383 tasks:: Vector{DTask}
8484end
85- function enqueue! (queue:: WaitAllQueue , spec:: Pair{EagerTaskSpec ,DTask} )
85+ function enqueue! (queue:: WaitAllQueue , spec:: Pair{DTaskSpec ,DTask} )
8686 push! (queue. tasks, spec[2 ])
8787 enqueue! (queue. upper_queue, spec)
8888end
89- function enqueue! (queue:: WaitAllQueue , specs:: Vector{Pair{EagerTaskSpec ,DTask}} )
89+ function enqueue! (queue:: WaitAllQueue , specs:: Vector{Pair{DTaskSpec ,DTask}} )
9090 for (_, task) in specs
9191 push! (queue. tasks, task)
9292 end
9393 enqueue! (queue. upper_queue, specs)
9494end
9595function wait_all (f; check_errors:: Bool = false )
96- queue = WaitAllQueue (get_options (:task_queue , EagerTaskQueue ()), DTask[])
96+ queue = WaitAllQueue (get_options (:task_queue , DefaultTaskQueue ()), DTask[])
9797 result = with_options (f; task_queue= queue)
9898 for task in queue. tasks
9999 if check_errors
0 commit comments