Skip to content

Commit dcf47e1

Browse files
committed
make schedule a kwarg and test default values
1 parent 5f2b801 commit dcf47e1

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

base/threads_overloads.jl

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file is a part of Julia. License is MIT: https://julialang.org/license
22

33
"""
4-
Threads.foreach(f, channel::Channel,
5-
schedule::Threads.AbstractSchedule=Threads.FairSchedule();
4+
Threads.foreach(f, channel::Channel;
5+
schedule::Threads.AbstractSchedule=Threads.FairSchedule(),
66
ntasks=Threads.nthreads())
77
88
Similar to `foreach(f, channel)`, but iteration over `channel` and calls to
@@ -23,8 +23,8 @@ with other multithreaded workloads.
2323
!!! compat "Julia 1.6"
2424
This function requires Julia 1.6 or later.
2525
"""
26-
function Threads.foreach(f, channel::Channel,
27-
schedule::Threads.AbstractSchedule=Threads.FairSchedule();
26+
function Threads.foreach(f, channel::Channel;
27+
schedule::Threads.AbstractSchedule=Threads.FairSchedule(),
2828
ntasks=Threads.nthreads())
2929
apply = _apply_for_schedule(schedule)
3030
stop = Threads.Atomic{Bool}(false)

test/threads_exec.jl

+7-1
Original file line numberDiff line numberDiff line change
@@ -853,7 +853,7 @@ function jitter_channel(f, k, delay, ntasks, schedule)
853853
iseven(i) && sleep(delay)
854854
put!(ch, f(i))
855855
end
856-
Threads.foreach(g, x, schedule; ntasks=ntasks)
856+
Threads.foreach(g, x; schedule=schedule, ntasks=ntasks)
857857
end
858858
return y
859859
end
@@ -873,4 +873,10 @@ end
873873
@test expected != unordered_static
874874
@test Set(expected) == Set(unordered_fair)
875875
@test Set(expected) == Set(unordered_static)
876+
877+
ys = Channel() do ys
878+
inner = Channel(xs -> foreach(i -> put!(xs, i), 1:3))
879+
Threads.foreach(x -> put!(ys, x), inner)
880+
end
881+
@test sort!(collect(ys)) == 1:3
876882
end

0 commit comments

Comments
 (0)