Concurrency Approaches: Past, Present, and Future
summary
Proposes an experimental concurrency model for the Val language that treats concurrent work as a computation abstraction implemented with coroutines, using a simple spawn/await surface and only two user rules (start and join). Claims safety without data races, aims performance comparable to C++ coroutines and senders/receivers, and avoids pervasive no function coloring. Notes the main engineering tradeoff: stackless coroutines avoid allocations but restrict suspend points, stackful coroutines allow suspension anywhere but incur dynamic stack allocation costs.
AI-written summary · about
chapters (14)
- 0:00Concurrency challenges
- 1:07Risks and expectations
- 3:16Talk agenda
- 10:32Safety goals
- 14:46Performance goals
- 22:44Over-subscription issues
- 29:50Synchronization costs
- 31:34Ease of use goals
- 41:07Past vs present models
- 53:34Introducing Val
- 1:00:17Val's computation model
- 1:03:30Val's ease of use
- 1:07:20Function coloring in Val
- 1:10:11Val's minimal rules
related talks
48mStructured Concurrency: Writing Safer Concurrent Code with Coroutines...
36mHow Do People Handle Concurrency?
58m“Introduction to C++ Coroutines"
01h 32mCoroutines and C++ DSLs for Human Scale Concurrency
44mConcurrent Affairs: Procedural Programming Unlocked
39mConcurrent Languages are Functional
01h 32mConcurrency, Parallelism and Coroutines
57mCoroutine Intuition in C++
