~/talk

Zero-allocation & no type erasure futures

Talkat ACCU 2018 · 2018-04-11..04-14· [concurrency, c-and-cpp]
slides:none on file

Claims a composable future system that encodes the entire async graph in C++ types to achieve zero-allocation and no type erasure, implemented with C++17 features (CTAD, deduction guides, fold expressions) and boost.callable_traits. Implements leaf/sequence/all/any nodes, an in-place shared state, and sync_execute with a latch; any lacks automatic cancellation. Benchmarks show about 2x improvement for very short tasks, with a practical crossover near ~1 ms where allocation/type-erasure overhead becomes negligible. Prototype compiles on GCC 7 and Clang 8 and works with the stated lifetime restriction (graph must outlive execution).

AI-written summary · about

  1. 0:00Start
  2. 6:57The Fork / Join Paradigm
  3. 8:32Type Erasure and Dynamic Allocation
  4. 12:11Dynamic Allocation
  5. 13:23Alternative Proposal
  6. 16:39Recap
  7. 20:51Leaf Node
  8. 24:01Seek Sequence
  9. 30:07Usage Example
  10. 41:34Return Volley Propagation
  11. 44:58Boost Callable Traits
  12. 48:43Final Implementation
  13. 49:45Sequential Node
  14. 53:17Synchronous Propagation
  15. 56:14Compute the in Type and Out Type
  16. 1:00:42Magic Enumerate Types Function
  17. 1:24:49Success Path
  18. 1:27:15Conclusion
  19. 1:29:10Deferred Execution Policy
~/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.