apple / apple/swift-async-algorithms
Support task executors
- Dominant language
- Swift
- Stars
- 3.7k
- Forks
- 226
- Avg merge
- 10d 3h
- Merged PRs (30d)
- 1
Description
`swift-async-algorithms` spawns unstructured tasks in several places (like for the `merge` operation). This is problematic because it doesn’t propagate the current preferred executor to these tasks. This means that it’s impossible to compose usage of these operations with custom task executors.
This should be fixed, either by seeing if it's possible to refactor these operations to use structured concurrency, or by setting a task executor on these unstructured tasks.
Contributor guide
Research direction
Start by locating the unstructured task creation in the merge operation and the other async algorithms mentioned in the issue. Investigate whether structured concurrency or explicitly setting a task executor preserves the current preferred executor. Done means these operations can compose with custom task executors without losing that preference.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100