JuliaSIMD / JuliaSIMD/ThreadingUtilities.jl

Does not play nicely with `Threads.@spawn` or `Threads.@threads`

Open
#25 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
17
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Two problems:
1. Possible race conditions. @tkf suggested a good fix here, which is to have a "job started" stated. Then, if the job hasn't started, `ThreadingUtilitilies.wait` can steal the task back (note that the overhead on this will be much higher than that of a proper work stealing implementation, which would use jumps).
2. ThreadingUtilities' tasks currently still spend some time before going to sleep. This gets in the way of `Threads.@spawn` and `Threads.@threads`, causing bad performance. It'd be great if there were something they could check to go to sleep immediately if someone used `Thread.@spawn` or `Threads.@threads`.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.