MENU

Fun & Interesting

Online Workshop Preview: Structured Concurrency in C++: A Hands-On Workshop - Mateusz Pusz ACCU 2025

ACCU Conference 379 2 months ago
Video Not Working? Fix It Now

https://accu.org https://www.accuconference.org/ Kevin Carpenter from@cppeventssits down with Mateusz Pusz to discuss his upcoming Workshop talk for the ACCU 2025 conference, titled 'Structured Concurrency in C++: A Hands-On Workshop' Join Kevin and Mateusz for a preview of this highly anticipated workshop! View More Information: https://accuconference.org/2025/session/structured-concurrency-in-cpp-a-hands-on-workshop Workshop: Structured Concurrency in C++: A Hands-On Workshop Scheduled for 09:00-18:00, Saturday, 29th - Sunday, 30th March 2025 --- Today, C++ software is increasingly asynchronous and parallel, a trend that is likely only to continue going forward. While the C++ Standard Library has a rich set of concurrency primitives and lower-level building blocks, we lack a standard framework for asynchrony and parallelism that C++ programmers desperately need. Asynchrony and parallelism appear everywhere, from processor hardware interfaces to networking, to file I/O, to GUIs, to accelerators. Every C++ domain and every platform needs to deal with asynchrony and parallelism, from scientific computing to video games to financial services, from the smallest mobile devices to your laptop to GPUs in the world's fastest supercomputer. This training shows that concurrency is not only about the C++ Standard Library threading and synchronization low-level tools. During the workshop, you will learn how to write efficient, asynchronous, and highly concurrent code without the need for any manual synchronization between threads, leading to simpler code and faster runtimes. During the hands-on exercises, you will implement coroutine tools from scratch and create parallel processing pipelines with a new std::execution framework, also called Senders/Receivers, which will arrive as a part of C++26. The reference implementation of this framework is publicly available on GitHub so that it can be used in production immediately without the need to wait for the next C++ release. What You Will Learn? - Understand what structured concurrency is and how it helps write thread-safe code without the need for additional synchronization. - A detailed discussion of coroutine machinery and its suspend and customization points. - How to implement synchronous and asynchronous tasks using coroutines. - How to build a complex asynchronous pipeline with schedulers, senders, and receivers in a few lines of code. - Practical usage of all the asynchronous algorithms provided by the std::execution framework. Outline - Asynchronous Programming with Coroutines - Coroutine keywords, restrictions, suspend points - Coroutine return type - std::coroutine_traits - Coroutine promise interface - std::coroutine_handle - Awaiters and Awaitables - Symmetric Control Transfer - C++ exceptions support - Eager and Lazy Tasks - async with coroutines - sync_await - Structured Concurrency with Senders and Receivers - Motivation - The structure of an asynchronous processing pipeline - Data parallelism with senders - Cancellation support - Transferring the work - Sender factories - Sender adaptors - Sender consumers - Implementing an asynchronous algorithm - Sender/Receivers and Coroutines --- The ACCU Conference is the annual conference of the ACCU membership, but is open to any and all who wish to attend. The tagline for the ACCU is "Professionalism in Programming", which captures the whole spectrum of programming languages, tools, techniques and processes involved in advancing our craft. While there remains a core of C and C++ - with many members participating in respective ISO standards bodies - the conference, like the organisation, embraces other language ecosystems and you should expect to see sessions on C#, D, F#, Go, Javascript, Haskell, Java, Kotlin, Lisp, Python, Ruby, Rust, Swift and more. There are always sessions on TDD, BDD, and how to do programming correctly. The ACCU Conference is a conference by programmers for programmers about programming. ACCU Membership: https://tinyurl.com/ydnfkcyn 2025 Program - https://accuconference.org/2025/schedule https://accu.org https://www.accuconference.org/ https://mastodon.social/@ACCUConf https://www.linkedin.com/showcase/accu-conference/ https://bsky.app/profile/accuconf.bsky.social https://www.facebook.com/accuorg --- Mateusz Pusz A software architect, principal engineer, and security champion with over 20 years of experience designing, writing, and maintaining C++ code for fun and living. A trainer with over 10 years of C++ teaching experience, consultant, conference speaker, and evangelist. His main areas of interest and expertise are Modern C++, code performance, low latency, safety, and maintainability. --- Hosted by Kevin Carpenter:@cppevents --- YouTube Videos Filmed, Edited & Optimised by Digital Medium: https://events.digital-medium.co.uk #accuconf #programming #cpp #cplusplus #concurrency #cppprogramming #cplusplusprogramming #coding #softwaredevelopment #code #programmer

Comment