The <condition_variable> header provides condition variables. These are basic-level synchronization mechanisms that allow a thread to block until notified that some condition is true, or a timeout period has elapsed.
namespace std { enum class cv_status { timeout, no_timeout }; class condition_variable; class condition_variable_any; }