The use of OncePerThread seems to have broken Polyester.jl.
julia> using Polyester
julia> i = 1
1
julia> @batch for i in 1:10
i += 1
end
ERROR: MethodError: no method matching length(::OncePerThread{Base.IntrusiveLinkedListSynchronized{Task}, Type{Base.IntrusiveLinkedListSynchronized{Task}}})
The function `length` exists, but no method is defined for this combination of argument types.
Closest candidates are:
length(::BitSet)
@ Base bitset.jl:355
length(::Compiler.InstructionStream)
@ Base ../usr/share/julia/Compiler/src/ssair/ir.jl:275
length(::Core.SimpleVector)
@ Base essentials.jl:981
...
Stacktrace:
[1] wake_thread!(_tid::UInt32)
@ ThreadingUtilities ~/.julia/packages/ThreadingUtilities/pDpKE/src/threadtasks.jl:64
[2] launch
@ ~/.julia/packages/ThreadingUtilities/pDpKE/src/threadtasks.jl:18 [inlined]
[3] launch_batched_thread!
@ ~/.julia/packages/Polyester/GQ6c9/src/batch.jl:107 [inlined]
[4] macro expansion
@ ~/.julia/packages/Polyester/GQ6c9/src/batch.jl:241 [inlined]
[5] _batch_no_reserve
@ ~/.julia/packages/Polyester/GQ6c9/src/batch.jl:168 [inlined]
[6] batch(::var"#5#6", ::Val{…}, ::Tuple{}, ::Tuple{}, ::Tuple{…}, ::Static.StaticInt{…}, ::Static.StaticInt{…}, ::Polyester.NoLoop, ::Polyester.CombineIndices)
@ Polyester ~/.julia/packages/Polyester/GQ6c9/src/batch.jl:335
The use of
OncePerThreadseems to have broken Polyester.jl.