~/talk

Fast, Simple Concurrency with Scala Native

Talkat Scala Days Lausanne 2019 · 2019-06-11..06-13· [concurrency, scala]
slides:none on file

A new library called native-loop implements a Scala Native execution context on top of libuv, providing futures, an event loop, timers and HTTP client/server plumbing that actually work — timers use malloc'd libuv handles with an 8‑byte ID field and promises, the execution context defers runnables to the loop, blocking file I/O falls back to libuv's thread pool, and the goal is high hundreds–low thousands rps with tiny footprints like 100–200MB per service.

AI-written summary · about

  1. 0:00Intro
  2. 0:13This talk is about
  3. 1:45Talk Outline
  4. 2:07About me
  5. 3:14Background: Concurrency
  6. 4:01Concurrency in Scala
  7. 4:47Common Concurrency Issues
  8. 5:50Design Questions
  9. 6:30Scala Native is
  10. 7:57Caveat
  11. 9:18Introducing libuv
  12. 11:10libuv and Scala Native
  13. 12:07A Tour of Native-Loop
  14. 15:19Streams (take 1)
  15. 16:22Streams, take 2
  16. 18:04Curl
  17. 19:04Imperative Server API
  18. 20:41Server DSL(s)
  19. 21:25All of the Above
  20. 21:58Performance
  21. 24:11Systems Programming 101
  22. 26:12Example: Memory Allocation
  23. 29:27Example: C FFI
  24. 31:57Greenspun's tenth rule
  25. 33:04ExecutionContext from Scratch
  26. 34:24LibUV's event loop
  27. 36:26Our EventLoop callback
  28. 37:04LoopExtensions
  29. 37:27Timer
  30. 39:42Working with Opaque Structs
  31. 43:08What's Next?
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.