Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::this_t...:sleep_until(3) C++ Standard Libarystd::this_t...: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 dura-
       tion 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 hon-
       ored 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 pro-
       vided 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

http://cppreference.com		  2024.06.10	 std::this_t...:sleep_until(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::this_thread::sleep_until&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help