Skip to content

Commit 65d049e

Browse files
authored
add locks in test_threads (timholy#292)
1 parent 56d1b66 commit 65d049e

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

test/test_threads.jl

+10-5
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,14 @@
2222
prog = ProgressMeter.ProgressUnknown(desc="Attempts at exceeding trigger:")
2323
vals = Float64[]
2424
threadsUsed = Int[]
25+
lk = ReentrantLock()
2526
Threads.@threads for _ in 1:1000
2627
!in(Threads.threadid(), threadsUsed) && push!(threadsUsed, Threads.threadid())
27-
push!(vals, rand())
28-
valssum = sum(vals)
29-
if sum(vals) <= trigger
28+
valssum = lock(lk) do
29+
push!(vals, rand())
30+
return sum(vals)
31+
end
32+
if valssum <= trigger
3033
ProgressMeter.next!(prog)
3134
elseif !prog.done
3235
ProgressMeter.finish!(prog)
@@ -47,8 +50,10 @@
4750
threadsUsed = Int[]
4851
Threads.@threads for _ in 1:100000
4952
!in(Threads.threadid(), threadsUsed) && push!(threadsUsed, Threads.threadid())
50-
push!(vals, -rand())
51-
valssum = sum(vals)
53+
valssum = lock(lk) do
54+
push!(vals, -rand())
55+
return sum(vals)
56+
end
5257
if valssum > thresh
5358
ProgressMeter.update!(prog, valssum)
5459
else

0 commit comments

Comments
 (0)