table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::this_thread::sleep_until(3) | C++ Standard Libary | std::this_thread::sleep_until(3) | 
NAME¶
std::this_thread::sleep_until - std::this_thread::sleep_until
Synopsis¶
 Defined in header <thread>
  
   template< class Clock, class Duration >
  
   void sleep_until( const std::chrono::time_point<Clock, Duration>&
    (since C++11)
  
   sleep_time );
  
   Blocks the execution of the current thread until specified sleep_time has
    been
  
   reached.
  
   Clock must meet the Clock requirements.
  
   The program is ill-formed if std::chrono::is_clock_v<Clock> is false.
  
   (since C++20)
  
   The standard recommends that the clock tied to sleep_time be used, in which
    case
  
   adjustments of the clock may be taken into account. Thus, the duration of the
    block
  
   might be more or less than sleep_time - Clock::now() at the time of the call,
  
   depending on the direction of the adjustment and whether it is honored by the
  
   implementation. The function also may block until after sleep_time has been
    reached
  
   due to process scheduling or resource contention delays.
Parameters¶
sleep_time - time to block until
Return value¶
(none)
Exceptions¶
 Any exception thrown by Clock or Duration (clocks and durations
    provided by the
  
   standard library never throw).
Example¶
// Run this code
  
   #include <chrono>
  
   #include <iostream>
  
   #include <thread>
  
   auto now() { return std::chrono::steady_clock::now(); }
  
   auto awake_time()
  
   {
  
   using std::chrono::operator""ms;
  
   return now() + 2000ms;
  
   }
  
   int main()
  
   {
  
   std::cout << "Hello, waiter...\n" << std::flush;
  
   const auto start{now()};
  
   std::this_thread::sleep_until(awake_time());
  
   std::chrono::duration<double, std::milli> elapsed{now() - start};
  
   std::cout << "Waited " << elapsed.count() <<
    " ms\n";
  
   }
Possible output:¶
 Hello, waiter...
  
   Waited 2000.17 ms
See also¶
 sleep_for stops the execution of the current thread for a
    specified time duration
  
   (C++11) (function)
  
   C documentation for
  
   thrd_sleep
| 2024.06.10 | http://cppreference.com |