1. Introduction
  2. 1. What is Gears?
  3. Starting up
  4. 2. Adding Gears in your own Scala Project
  5. 3. Setting up Gears
  6. Basic Concepts
  7. 4. An "Async" function
  8. 5. Concurrency with Future
  9. 6. Groups, Scoping and Structured Concurrency
  10. 7. Working with multiple Futures
  11. 8. Supervising with Retries and Timeouts
  12. 9. Inter-future communication with Channels
  13. Dealing with Unstructured Concurrency
  14. 10. Sources as a Concurrency Primitive
  15. 11. Passive Futures and Promises
  16. 12. Select and Race
  17. 13. Locking and Failible Listeners
  18. 14. Cancellables and Scoping rules
  19. Writing Gears programs
  20. 15. Structured concurrency patterns
  21. 16. Avoid returning Futures
  22. 17. Async.blocking: when to use
  23. 18. Staying referentially transparent with Async Blocks
  24. 19. Taking async lambdas as arguments
  25. Using Gears in your projects
  26. 20. Incremental adoption in your codebase
  27. Lower-level details
  28. 21. Async Support: Suspensions and Schedulers
  29. 22. Asynchronous Operations
  30. 23. Writing Cross-platform Gears libraries

Concurrency with Gears

Taking () => T vs. Async ?=> T