Implement concurrency primitives from scratch
Some more things I want to implement
- Basic threaded networking server
- Ensure a fixed max number of threads
- Thread pools
- Implement basic thread pool
- Detect dead worker
- Check if underlaying datastructures are thread-safe
- Make tasks cancellable to handle slow clients
- Implement back pressure / throttling
- Work different promitives
- Locks
- Semaphores
- Barriers
- Cyclic Barriers
- Condition objects
- IVar / Future
- MVar
- TVar (STM)
- Cancellation
- Implement different schedulers
- FIFO
- (Job) priority scheduling
- (shortest) remaining time first
- High level abstractions
- Promise
- Actors
- Actor Pool
- Channel