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

  • 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