# [C++ links](https://github.com/MattPD/cpplinks): Coroutines https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Coroutines _(draft; work in progress)_ \#coroutines ([C++ Slack](https://cppalliance.org/slack/)): https://cpplang.slack.com/archives/C5JS5JXT5 # Contents - [Readings](#readings): [Research](#readings-research) - [Software](#software): [Examples](#software-examples) - [Talks](#talks): [2024](#talks-2024), [2023](#talks-2023), [2022](#talks-2022), [2021](#talks-2021), [2020](#talks-2020), [2019](#talks-2019), [2018](#talks-2018), [2017](#talks-2017), [2016](#talks-2016), [2015](#talks-2015) --- # Readings - https://en.cppreference.com/w/cpp/language/coroutines - Working Draft, C++ Coroutines - https://wg21.link/n4775 - merged into C++20, http://wg21.link/p0912 - Brain Unrolling: Generators and the Sweet Syntactic Sugar of Coroutines - Adi Shavit - http://videocortex.io/2019/Brain-Unrolling/ - C++20 Coroutines and io_uring - Pablo Arias - https://pabloariasal.github.io/2022/11/12/couring-1/ - https://pabloariasal.github.io/2022/11/13/couring-2/ - https://pabloariasal.github.io/2022/11/13/couring-3/ - C++20: A coroutine based stream parser - https://andreasfertig.blog/2021/02/cpp20-a-coroutine-based-stream-parser/ - `co_resource<T>`: An RAII coroutine - https://vector-of-bool.github.io/2021/12/30/co_resource.html - Coroutines TS Customization Points - https://hackmd.io/s/S1H_loeA7 - Coroutines: step by step; a journey through seven coroutine types - Daily bit(e) of C++ #441 Mar 17, 2024 - Šimon Tóth - https://simontoth.substack.com/p/daily-bite-of-c-coroutines-step-by - http://www.vishalchovatiya.com/cpp20-coroutine-under-the-hood/ - David Mazières - My tutorial and take on C++20 coroutines - https://www.scs.stanford.edu/~dm/blog/c++-coroutines.html - Dawid Pilarski - Coroutines introduction - https://blog.panicsoftware.com/coroutines-introduction/ - Your first coroutine - https://blog.panicsoftware.com/your-first-coroutine/ - co_awaiting coroutines - https://blog.panicsoftware.com/co_awaiting-coroutines/ - How C++ coroutines work - Kirit Sælensminde - https://kirit.com/How%20C%2B%2B%20coroutines%20work - Lewis Baker - C++ Coroutines: - Coroutine Theory - https://lewissbaker.github.io/2017/09/25/coroutine-theory - Understanding operator co_await - https://lewissbaker.github.io/2017/11/17/understanding-operator-co-await - Understanding the promise type - https://lewissbaker.github.io/2018/09/05/understanding-the-promise-type - Understanding Symmetric Transfer - https://lewissbaker.github.io/2020/05/11/understanding_symmetric_transfer - Understanding the Compiler Transform - https://lewissbaker.github.io/2022/08/27/understanding-the-compiler-transform - On the Performance of User-Mode Threads and Coroutines - August 7, 2020; Ron Pressler - https://inside.java/2020/08/07/loom-performance/ - Painless C++ Coroutines - Gajendra Gulgulia - https://ggulgulia.medium.com/painless-c-coroutines-part-1-ba90dd101adb?sk=fad5c9d7985719e96583c999b51c8a1e - https://ggulgulia.medium.com/painless-coroutines-part2-29b36008b507?sk=6fa83a32164a2a043e6714d0e38886e5 - https://ggulgulia.medium.com/painless-c-coroutine-part-3-536e4bce4f4f?sk=03a1bc6ad642b9398710397a2e7ac3fd - Rainer Grimm - ModernesCpp.com - https://www.modernescpp.com/index.php/tag/coroutines - Raymond Chen - A map through the three major coroutine series - https://devblogs.microsoft.com/oldnewthing/?p=105178 - What are coroutines and why should I care? - Marco Alesiani - http://www.italiancpp.org/2016/11/02/coroutines-internals/ - cpprefjp - C++日本語リファレンス (Japanese reference) - language feature - https://cpprefjp.github.io/lang/cpp20/coroutines.html - `<coroutine>` - https://cpprefjp.github.io/reference/coroutine.html - GCC implementation - https://gcc.gnu.org/wiki/cxx-coroutines - Initial implementation pushed to master. - https://gcc.gnu.org/ml/gcc-patches/2020-01/msg01096.html - LLVM implementation - Coroutines in LLVM - https://llvm.org/docs/Coroutines.html - Debugging C++ Coroutines - https://clang.llvm.org/docs/DebuggingCoroutines.html - [RFC] [Coroutines] Enable printing coroutine frame in debugger if program is compiled with -g - https://reviews.llvm.org/D99179 ## Readings: Research ### Readings: Research: 2025 - GastCoCo: Graph Storage and Coroutine-Based Prefetch Co-Design for Dynamic Graph Processing - International Conference on Very Large Data Bases (VLDB) 2025 - Hongfu Li, Qian Tao, Song Yu, Shufeng Gong, Yanfeng Zhang, Feng Yao, Wenyuan Yu, Ge Yu, Jingren Zhou - https://doi.org/10.14778/3704965.3704986 - https://www.vldb.org/pvldb/vol17/p4827-li.pdf - https://github.com/GorgeouszzZ/GastCoCo ### Readings: Research: 2023 - CoroGraph: Bridging Cache Efficiency and Work Efficiency for Graph Algorithm Execution - PVLDB, 17(4) 2023 - Xiangyu Zhi, Xiao Yan, Bo Tang, Ziyao Yin, Yanchao Zhu, Minqi Zhou - https://www.vldb.org/pvldb/vol17/p891-zhi.pdf - CoroGraph: Light-weight graph framework based on coroutines - https://github.com/DBGroup-SUSTech/corograph ### Readings: Research: 2022 - Software Prefetching for Memory-level Parallelism - 2022 Ph.D. Dissertation - Yongkee Kwon - https://repositories.lib.utexas.edu/handle/2152/116966 - What Are You Waiting For? Use Coroutines for Asynchronous I/O to Hide I/O Latencies and Maximize the Read Bandwidth! - ADMS 2022: International Workshop on Accelerating Analytics and Data Management Systems Using Modern Processor and Storage Architectures - Leonard von Merzljak, Philipp Fent, Thomas Neumann, Jana Giceva - https://db.in.tum.de/~fent/papers/coroutines.pdf - micro-benchmarks to examine the benefits of asynchronous I/O for query processing using C++ coroutines and io_uring - https://github.com/L-v-M/async ### Readings: Research: 2021 - High-Performance In-Memory OLTP via Coroutine-to-Transaction - 2021 M.Sc. Thesis - Yongjun He - https://summit.sfu.ca/item/34670 - https://github.com/sfu-dis/corobase ### Readings: Research: 2020 - CoroBase: Coroutine-Oriented Main-Memory Database Engine - VLDB 2021 - Yongjun He, Jiacheng Lu, Tianzheng Wang - a research database engine that models transactions as C++20 coroutines to hide cache misses - https://github.com/sfu-dis/corobase - https://arxiv.org/abs/2010.15981 - http://www.vldb.org/pvldb/vol14/p431-he.pdf ### Readings: Research: 2019 - Bridging the Latency Gap between NVM and DRAM for Latency-bound Operations - interleaving task execution with C++20 coroutines to hide memory access latency - Data Management on New Hardware (DaMoN) 2019 - Georgios Psaropoulos, Ismail Oukid, Thomas Legler, Norman May, Anastasia Ailamaki - https://dl.acm.org/citation.cfm?id=3329917 - Don’t stall – multitask! Random access to main memory with cache-like performance - https://www.linkedin.com/pulse/dont-stall-multitask-georgios-psaropoulos/ ### Readings: Research: 2018 - Exploiting Coroutines to Attack the "Killer Nanoseconds" - PVLDB 11, 11 (July 2018) - Christopher Jonathan, Umar Farooq Minhas, James Hunter, Justin Levandoski, Gor Nishanov - http://www.vldb.org/pvldb/vol11/p1702-jonathan.pdf ### Readings: Research: 2017 - Interleaving with Coroutines: A Practical Approach for Robust Index Joins - PVLDB 11, 2 (October 2017) - Georgios Psaropoulos, Thomas Legler, Norman May, and Anastasia Ailamaki - http://www.vldb.org/pvldb/vol11/p230-psaropoulos.pdf --- # Software - Conduit: Lazy High Performance Streams using Coroutine TS - https://github.com/loopperfect/conduit - Corral: lightweight structured concurrency for C++20 - https://github.com/hudson-trading/corral - CppCoro - A coroutine library for C++ - https://github.com/lewissbaker/cppcoro - Maintained fork of cppcoro - https://github.com/andreasbuhr/cppcoro - cxx-async: Simple interoperability between C++ coroutines and asynchronous Rust - https://github.com/pcwalton/cxx-async - https://pcwalton.github.io/_posts/2022-08-19-introducing-cxx-async.html - folly::coro - a developer-friendly asynchronous C++ framework based on Coroutines TS - https://github.com/facebook/folly/tree/main/folly/coro - https://github.com/facebook/folly/blob/main/folly/experimental/coro/README.md - https://cppcast.com/2019/03/kirk-shoop/ - Async Stack Traces for C++ Coroutines in Folly - 2021; Lee Howes and Lewis Baker - Introduction - https://developers.facebook.com/blog/post/2021/09/16/async-stack-traces-folly-Introduction/ - Synchronous and asynchronous stack traces - https://developers.facebook.com/blog/post/2021/09/23/async-stack-traces-folly-synchronous-asynchronous-stack-traces/ - Forming an async stack from individual frames - https://developers.facebook.com/blog/post/2021/09/30/async-stack-traces-folly-forming-async-stack-individual-frames/ - Walking the async stack - https://developers.facebook.com/blog/post/2021/10/14/async-stack-traces-c-plus-plus-coroutines-folly-walking-async-stack/ - Async stack traces in folly: Improving debugging in the developer lifecycle - https://developers.facebook.com/blog/post/2021/10/21/async-stack-traces-folly-improving-debugging-developer-lifecycle/ ## Software: Examples - libc++ - https://github.com/llvm/llvm-project/blob/release/8.x/libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp - https://github.com/llvm/llvm-project/blob/release/8.x/libcxx/test/support/coroutine_types.h - http://cppcast.com/2017/07/gor-nishanov/ - Compiler Explorer: Coroutines clang demo - https://godbolt.org/g/pq6x57 - Wandbox: Coroutines with Ranges - https://wandbox.org/permlink/D60wIndMZbth7BXS - David Hollman - https://twitter.com/TheWholeDavid/status/1063135275671535616 - https://wandbox.org/permlink/OqlSdKihqjBX2qUs - Boost.Asio - https://www.boost.org/doc/libs/release/doc/html/boost_asio/examples/cpp17_examples.html - Coop: C++20 coroutines-based cooperative multitasking library - https://github.com/jeremyong/coop - coro-async - C++ coroutine based networking library (WIP) - https://github.com/arun11299/coro-async - Coroutine TS: A new way of thinking - https://github.com/arBmind/2018-cogen-en - https://github.com/arBmind/2018-cogen-en/tree/develop/code - Exploring the C++ Coroutine - https://github.com/luncliff/coroutine/ - https://github.com/luncliff/coroutine/wiki - generator: Single-header, ranges-compatible generator type built with C++20 coroutines. - https://github.com/TartanLlama/generator/ - coro: Single-header library facilities for C++2a Coroutines - https://github.com/Quuxplusone/coro - https://quuxplusone.github.io/blog/2019/07/03/announcing-coro-examples/ --- # Talks ## Talks: 2024 - Async Stacks: Making Senders and Coroutines Debuggable - CppCon 2024 - Ian Petersen & Jessica Wong - https://www.youtube.com/watch?v=nHy2cA9ZDbw - https://github.com/CppCon/CppCon2024/blob/main/Presentations/How_Meta_Made_Debugging_Async_Code_Easier_with_Coroutines_and_Senders.pdf - C++ Coroutines and Structured Concurrency in Practice - Dmitry Prokoptsev - C++Now 2024 - https://www.youtube.com/watch?v=sWeOIS14Myg - https://github.com/boostcon/cppnow_presentations_2024/blob/main/Presentations/Coroutines_and_Structured_Concurrency_in_Practice.pdf - CppCon 2024 - https://www.youtube.com/watch?v=aPqMQ7SXSiw - https://github.com/CppCon/CppCon2024/blob/main/Presentations/Coroutines_and_Structured_Concurrency_in_Practice.pdf - C++ Coroutines at Scale - Implementation Choices at Google - C++Now 2024 - Aaron Jacobs - https://www.youtube.com/watch?v=k-A12dpMYHo - https://github.com/boostcon/cppnow_presentations_2024/blob/main/Presentations/Coroutines_at_scale.pdf - C++ Coroutines - Don’t Try This at Home - ACCU 2024 - Lieven de Cock - https://www.youtube.com/watch?v=SVm99X3I-JY - Coroutines and gRPC - C++Online 2024 - Jonathan Storey - https://www.youtube.com/watch?v=kFgA-47fbjM - https://github.com/CppOnlineConference/CppOnline2024/blob/main/Presentations/coroutines_and_grpc_cpp_online_2024_slides.pdf - Deciphering C++ Coroutines Part 2 - Mastering Asynchronous Control Flow - CppCon 2024 - Andreas Weis - https://www.youtube.com/watch?v=qfKFfQSxvA8 - Introduction to Coroutines - Utah C++ Programmers 2024 - Richard Thomson - https://www.youtube.com/watch?v=p2UBok-rTrg - What We’ve Been Awaiting For? - How to Build a C++ Coroutine Type - C++Now 2024 - Hana Dusíková - https://www.youtube.com/watch?v=78nwm9EP23A - https://github.com/hanickadot/co_curl - https://talks.cpp.fail/what-we-have-been-awaiting-for/ ## Talks: 2023 - Adventures in Thread-per-Core Async with Redpanda and Seastar - P99 CONF 2023 - Travis Downs - https://www.youtube.com/watch?v=pOIoeFuIUKQ - An Introduction to C++ Coroutines Through a Thread Scheduling Demonstration - CppNow 2023 - Dian-Lun Lin - https://www.youtube.com/watch?v=kIPzED3VD3w - https://github.com/boostcon/cppnow_presentations_2023/blob/main/cppnow_slides/An_Introduction_to_Cpp_Coroutines_Through_a_Thread_Scheduling_Demonstration.pdf - Appreciating C++ Coroutines in Forty Minutes - code::dive 2023 - Andrzej Krzemieński - https://www.youtube.com/watch?v=ZSkign_3Hp4 - C++ Coroutine Intuition - CppNow 2023 - Roi Barkan - https://www.youtube.com/watch?v=NNqVt73OsfI - https://github.com/boostcon/cppnow_presentations_2023/blob/main/cppnow_slides/Coroutine%20Intuition.pdf - Implementing a C++ Coroutine Task from Scratch - ACCU 2023 - Dietmar Kühl - https://www.youtube.com/watch?v=Npiw4cYElng - https://github.com/dietmarkuehl/co_await-all-the-things ## Talks: 2022 - Asynchronous I/O (io_uring) and Coroutines for Smooth Data Streaming - ACCU 2022; Björn Fahller - https://www.youtube.com/watch?v=54oGgmMAUNk - https://speakerdeck.com/rollbear/o-and-coroutines-for-smooth-data-streaming-2067ad42-9d0b-40ee-964e-bcca3f9e1e04 - C++ Coroutines, from Scratch - Phil Nash - https://levelofindirection.com/refs/coroutines - CppNow 2022 - part 1: https://www.youtube.com/watch?v=k-wnxH96wEY - part 2: https://www.youtube.com/watch?v=jlMoZwgan9c - MUC++ 2022 - https://www.youtube.com/watch?v=E8tu2jQXyZo - C++20’s Coroutines for Beginners - CppCon 2022; Andreas Fertig - https://www.youtube.com/watch?v=8sEe-4tig_A - Coroutines - C++ vs Rust - ACCU 2022; Jonathan Müller - https://www.youtube.com/watch?v=aa43fYHgnfo - Deciphering Coroutines - A Visual Approach - Andreas Weis - CppCon 2022 - https://www.youtube.com/watch?v=J7fYddslH0Q - MUC++ 2022 - https://www.youtube.com/watch?v=EErCf6Elq0c - How to Use C++20 Coroutines for Networking - ACCU 2022; Jim Pascoe - https://www.youtube.com/watch?v=ZNttI_WswMU - https://jamespascoe.github.io/accu2022/ - https://github.com/jamespascoe/accu2022-example-code - Powerful Data Processing Pipelines with C++20 Coroutines - ACCU 2022; Andreas Weis - https://www.youtube.com/watch?v=KhGmOI478so - Understanding C++ Coroutines by Example - C++ on Sea 2022; Pavel Novikov - Part 1: https://www.youtube.com/watch?v=tj0URCY_A1s - Part 2: Generators: https://www.youtube.com/watch?v=9p7obE9KRoU ## Talks: 2021 - Asynchronous I/O and coroutines for smooth data streaming - NDC TechTown 2021; Björn Fahller - https://www.youtube.com/watch?v=uPJFj3b8RN0 - https://speakerdeck.com/rollbear/o-and-coroutines-for-smooth-data-streaming - Automatically Process Your Operations in Bulk With Coroutines - CppCon 2021; Francesco Zoffoli - https://www.youtube.com/watch?v=3R_Z5RO1AH4 - https://github.com/MakersF/cppcon-2021-corobatch - corobatch: makes batching operations easy by transforming your single-item code to perform batched operations thanks to coroutines - https://github.com/MakersF/corobatch - Combining Co-Routines and Functions into a Job System - CppCon 2021; Helmut Hlavacs - https://www.youtube.com/watch?v=XtFWxwDX7D4 - Converting a State Machine to a C++ 20 Coroutine - CppNow 2021; Steve Downey - https://www.youtube.com/watch?v=Z8jHi9Cs6Ug - https://cppnow.digital-medium.co.uk/wp-content/uploads/2021/04/convert-state-machine-coroutine-slides-1.pdf - C++20 coroutines as an API principle - Meeting C++ 2021; Marc Mutz - https://www.youtube.com/watch?v=tvdwYwTyrig - https://meetingcpp.com/mcpp/slides/2021/noi9766.pdf - From Problem to Coroutine: Reducing I/O Latency - CppCon 2021; Cheinan Marks - https://www.youtube.com/watch?v=N__eTyrLAF0 - How to start using coroutines - NDC TechTown 2021; Mikhail Svetkin - https://www.youtube.com/watch?v=6AIYIf5Vr18 - Implementing Generators with C++20 Coroutines - 2021; Sy Brand - https://www.youtube.com/watch?v=D0snE2-BOwM - generator: Single-header, ranges-compatible generator type built with C++20 coroutines. - https://github.com/TartanLlama/generator/ - Understanding C++ Coroutines by Example - C++ London 2021; Pavel Novikov - https://www.youtube.com/watch?v=7sKUAyWXNHA - Slides: https://toughengineer.github.io/talks/C++%20Russia%202020%20Moscow/ - Using Coroutines to Implement C++ Exceptions for Freestanding Environments - CppCon 2021; Eyal Zedaka - https://www.youtube.com/watch?v=TsXYqnUXrwM - https://github.com/eyalz800/zpp_throwing ## Talks: 2020 - 40 Years Of Evolution from Functions to Coroutines - CppCon 2020; Rainer Grimm - https://www.youtube.com/watch?v=jd6P9X8l2bY - <https://github.com/CppCon/CppCon2020/tree/main/Presentations/from_functions_to_coroutines_> - Building a Coroutine based Job System without Standard Library - CppCon 2020; Tanki Zhang - https://www.youtube.com/watch?v=KWi793v5uA8 - https://github.com/CppCon/CppCon2020/tree/main/Presentations/building_a_coroutine_based_job_system_without_standard_library - https://github.com/tankiJong/cpp-coroutine-job-system - Corobatch - Batch operations, simply, with coroutines - C++ London, May 2020; Francesco Zoffoli - https://www.youtube.com/watch?v=vzi0lTVyb-g - Corobatch: makes batching operations easy by transforming your single-item code to perform batched operations thanks to coroutines - https://github.com/MakersF/corobatch ## Talks: 2019 - code::dive 2019 - C++20 Coroutines: Introduction - Marcin Grzebieluch - https://www.youtube.com/watch?v=vDA925C55F0 - https://codedive.pl/index/speaker/name/marcin-grzebieluch - code::dive 2019 - C++20 Coroutines: Asynchronity reimagined - Miłosz Warzecha - https://www.youtube.com/watch?v=FeUOKwLLQe0 - https://codedive.pl/index/speaker/name/milosz-warzecha - code::dive 2019 - C++20 Coroutines: What's next? - Dawid Pilarski - https://www.youtube.com/watch?v=vNL9UFnyQJU - https://codedive.pl/index/speaker/name/dawid-pilarski - Exploring C++20 Coroutines - C/C++ Dublin User Group 2019; Justin Durkan - https://www.youtube.com/watch?v=RhXaKOe3JZM - https://drive.google.com/file/d/1sHtERPE4tgn2R4QeAAN-TlSD_gd9CE3d/view - Structured Concurrency: Writing Safer Concurrent Code with Coroutines and Algorithms - CppCon 2019; Lewis Baker - https://www.youtube.com/watch?v=1Wy5sq3s2rg - 2019 GNU Tools Cauldron: Iain Sandoe - C++20 Coroutines in GCC - https://gcc.gnu.org/wiki/cauldron2019#cauldron2019talks.c_coroutines_function_and_implementation_in_GCC - https://gcc.gnu.org/wiki/cauldron2019talks?action=AttachFile&do=view&target=Coroutine-Cauldron-2019.pdf - https://www.youtube.com/watch?v=5NybFJ6O7T0&list=PL_GiHdX17Wtx2Bu1O_bREetZZv4moIaRi&index=5 - 2019 Adi Shavit - Generators, Coroutines and Other Brain Unrolling Sweetness - NDC TechTown: https://www.youtube.com/watch?v=CwCJBpB7Z5w - CppCon: https://www.youtube.com/watch?v=qYHDERleSL8 - CoreHard Autumn: https://www.youtube.com/watch?v=qjQBAgsj9CI - code::dive 2019 - https://www.youtube.com/watch?v=ahorllPz5rE - https://codedive.pl/index/speaker/name/adi-shavit - 2019 Core C++: Yehezkel Bernat - Coroutines - the future of future (and more) - https://www.youtube.com/watch?v=1tQfcPnHeRY - https://github.com/YehezkelShB/CoreCpp2019-Coroutines - 2019 C++ Korea Facebook Group: Park Dong Ha - Exploring the C++ Coroutine: Approach, Compiler, and Issues - https://github.com/luncliff/coroutine/wiki/Exploring-the-Cpp-Coroutine ## Talks: 2018 - 2018 Meeting C++: Andreas Reischuck - Coroutine TS a new way of thinking - https://www.youtube.com/watch?v=RL5oYUl5548 - https://github.com/arBmind/2018-cogen-en - 2018 CppCon: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)” - https://www.youtube.com/watch?v=j9tlJAqMV7U - 2018 LLVM Developers’ Meeting: J. McCall “Coroutine Representations and ABIs in LLVM” - https://www.youtube.com/watch?v=wyAbV8AM9PM - 2018 Core C++: Yehezkel Bernat - Coroutines - Back to the Future - (Hebrew) https://www.youtube.com/watch?v=eZrhz9v1ApE - (English) https://corecppil.github.io/Meetups/2018-09-17_Sweet-C++/Coroutines.pdf ## Talks: 2017 - 2017 CppCon: Anthony Williams “Concurrency, Parallelism and Coroutines” - https://www.youtube.com/watch?v=JvHZ_OECOFU - 2017 CppCon: Gor Nishanov “Naked coroutines live (with networking)” - https://www.youtube.com/watch?v=UL3TtTgt3oU - 2017 CppCon: Toby Allsopp “Coroutines: what can't they do?” - https://www.youtube.com/watch?v=mlP1MKP8d_Q - 2017 Pacific++: Toby Allsopp "An Introduction to the Proposed Coroutine Support for C++" - https://www.youtube.com/watch?v=nWuXubffryo ## Talks: 2016 - 2016 await/yield: C++ coroutines - Zbigniew Skowron - 30 November, 2016 - http://cpp.mimuw.edu.pl/files/await-yield-c++-coroutines.pdf - 2016 CppCon: Gor Nishanov “C++ Coroutines: Under the covers" - https://www.youtube.com/watch?v=8C8NnE1Dg4A - 2016 CppCon: James McNellis “Introduction to C++ Coroutines" - https://www.youtube.com/watch?v=ZTqHjjm86Bw - 2016 LLVM Developers’ Meeting: G. Nishanov “LLVM Coroutines” - https://www.youtube.com/watch?v=Ztr8QvMhqmQ ## Talks: 2015 - 2015 C++Now - Gor Nishanov: C++17 coroutines for app and library developers - https://www.youtube.com/watch?v=proxLbvHGEQ - 2015 CppCon: Gor Nishanov “C++ Coroutines - a negative overhead abstraction" - https://www.youtube.com/watch?v=_fu0gx-xseY - 2015 Meeting C++: An Introduction to C++ Coroutines - James McNellis - https://www.youtube.com/watch?v=YYtzQ355_Co