In this chapter, we will cover the following recipes:
- Providing futures with a CPU pool and waiting for them
- Implementing error handling for futures
- Combining futures
- Using Streams
- Using Sinks
- Using the oneshot channel
- Returning futures
- Locking resources with BiLocks