Concurrency
Denys Duchier
Start
Foreword
Death by Concurrency
Death by Concurrency
Death by Concurrency
Threads And Data-Flow Synchronization
Synchronization And Entailment
Explicit Synchronization
Synchronizing on Termination
Joining Threads
Concurrency, Agents and Communication
Real World Problem
Real World Solution
Email Metaphor
Streams for Communication
Stream Processing Actor
Concurrent Sends to 1 Stream
Ports and Streams
Asynchronous Send
Abstractions For Communication
Forwarding Agent
Stream Merging Agency
Stream Splitting Agent
Updatable Cell Agent
Server Agent
Safe Abstractions
Port/Stream from Cell
Port/Stream from Cell is Unsafe
Futures and Read-Only Vars
Safe Port/Stream from Cell
Raising and Catching Exceptions
Exceptions as Non-Local Returns
Exceptions as Errors
Catching Errors
Concurrent Service
Failed Futures
Service Revised
Locks
Per-Object Locks
Streams Instead of Locks
Batching Requests