Skip to content

Commit

Permalink
add locks in test_threads (#292)
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcMush authored Jan 25, 2024
1 parent 56d1b66 commit 65d049e
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions test/test_threads.jl
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@
prog = ProgressMeter.ProgressUnknown(desc="Attempts at exceeding trigger:")
vals = Float64[]
threadsUsed = Int[]
lk = ReentrantLock()
Threads.@threads for _ in 1:1000
!in(Threads.threadid(), threadsUsed) && push!(threadsUsed, Threads.threadid())
push!(vals, rand())
valssum = sum(vals)
if sum(vals) <= trigger
valssum = lock(lk) do
push!(vals, rand())
return sum(vals)
end
if valssum <= trigger
ProgressMeter.next!(prog)
elseif !prog.done
ProgressMeter.finish!(prog)
Expand All @@ -47,8 +50,10 @@
threadsUsed = Int[]
Threads.@threads for _ in 1:100000
!in(Threads.threadid(), threadsUsed) && push!(threadsUsed, Threads.threadid())
push!(vals, -rand())
valssum = sum(vals)
valssum = lock(lk) do
push!(vals, -rand())
return sum(vals)
end
if valssum > thresh
ProgressMeter.update!(prog, valssum)
else
Expand Down

0 comments on commit 65d049e

Please sign in to comment.