Effective Modern C++ live! Scott Meyers on void Futures
Date: This event took place live on March 31 2015
Presented by: Scott Meyers
Duration: Approximately 60 minutes.
Questions? Please send email to
What's the best way for one thread to notify another that an event has taken place? The traditional approach is to use a condition variable, but that requires a mutex, and for simple event communication, that seems like overkill: no data requires synchronized access. An alternative is to use a shared flag, but that requires polling on the part of the thread waiting for notification.
As of C++11, an interesting new option is the use of a void future. Like the approach based on condition variables, the task waiting for notification truly blocks—no polling is required. Like the approach based on a shared flag, there's no need for a mutex. The approach even makes it possible for the notifying thread to throw an exception that the waiting-to-be-notified thread can catch. However, a design based on void futures has costs and is constrained by restrictions that developers must keep in mind when choosing among these event-communication strategies.
In this webcast, Scott Meyers covers the pros and cons of void futures as a mechanism for event communication among threads. It's based on information in chapter 7 ("The Concurrency API") of his best-selling new book, Effective Modern C++.
About Scott Meyers
Scott Meyers is one of the world's foremost experts on C++. He's best known for his chart-topping Effective C++ books—Effective Modern C++ (new!), Effective C++, More Effective C++, and Effective STL. He also published the annotated training materials, Overview of the New C++ (C++11/14) and Effective C++ in an Embedded Environment.
Scott founded and is Consulting Editor for the Effective Software Development Series, and he conceived the boutique conferences The C++ Seminar and C++ and Beyond. A programmer since 1972, he holds an M.S. in Computer Science from Stanford University and a Ph.D. from Brown University.