Topic: Rustc-Rayon Sync
Audience | compiler team, rayon folks |
Key people | nikomatsakis, cuviper, mw |
When | TBD |
Where | TBD |
Meeting Style | Discussion |
Deliverables
- Plan to resolve rustc-fork of rayon
- Action plan
Homework to do before meeting
- Write-up of what extensions rustc-rayon fork contains
- Write-up of current parallelization design
- Key unresolved questions
Agenda
- Review locking strategy
- What hacks are we still using? Can we stop?
- How to reconcile rustc fork of rayon with mainline rayon
- How to integrate job server?
- Fibers
Commits in rustc-rayon 0.1.2
https://github.com/rayon-rs/rayon/compare/master...rust-lang:crate-0.1.2
- 729d7ccd2d25 Add thread-local values which are preserved with jobs
- e58b9c3e3ebe Add a main_handler which is passed an argument to run the proper main loop
- used to nest the threads in TLS-with-style initializers
- can the proposed broadcast API cover this?
- 9815d97db161 Add the ability to create scoped thread pools
- used to permit a non-'static main handler
- 046336e36dbe Add a WorkerLocal type which allow you to hold a value per Rayon worker thread
- 0f55a9956583 Add deadlock detection
- detects that some threads are blocked, but no threads are active in the pool
- as-is, misses the possibility of blocking on other pools
- 86060c2a978b Add callbacks for when threads start and stop doing work
- 51ee2fa77805 Rename crates, update version and make clear this is not the real rayon crate
- just minutia of creating a forked crate