mesh: remove global timeout thread
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 238
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 100
Description
For convenience, mesh cancel contexts are timed out via a global timeout thread. Find a better way to manage this, e.g.:
- Pass a
pal_asyncdriver tountil_cancelled. This isn't great because we want to avoid apal_asyncdependency in the public API. - Require the platform to be initialized with an explicit driver for handling timeouts. This works OK but means every program using mesh has to remember to do this in
main. - Grab the driver from the current task. This seems easy to screw up since we're not always running on a task.
None of these solutions is obviously the right one. But it's awkward to have this extra thread.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing mesh cancel contexts through until_cancelled and the global timeout thread. Compare the listed options: passing a pal_async driver, requiring explicit platform initialization, or obtaining the driver from the current task. Done means selecting and implementing a timeout design that removes the extra thread without adding an undesirable public API dependency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100