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

FreeBSD Manual Pages

  
 
  

home | help
std::future::wait(3)	      C++ Standard Libary	  std::future::wait(3)

NAME
       std::future::wait - std::future::wait

Synopsis
	  void wait() const;  (since C++11)

	  Blocks until the result becomes available. valid() ==	true after the
       call.

	  The  behavior	 is  undefined	if valid() == false before the call to
       this function.

Parameters
	  (none)

Return value
	  (none)

Exceptions
	  May throw implementation-defined exceptions.

Notes
	  The implementations are encouraged to	detect the case	 when  valid()
       == false	before
	  the call and throw a std::future_error with an error condition of
	  std::future_errc::no_state.

Example
       // Run this code

	#include <chrono>
	#include <iostream>
	#include <future>
	#include <thread>

	int fib(int n)
	{
	  if (n	< 3) return 1;
	  else return fib(n-1) + fib(n-2);
	}

	int main()
	{
	    std::future<int> f1	= std::async(std::launch::async, [](){
		return fib(40);
	    });
	    std::future<int> f2	= std::async(std::launch::async, [](){
		return fib(43);
	    });

	    std::cout << "waiting... " << std::flush;
	    const auto start = std::chrono::system_clock::now();

	    f1.wait();
	    f2.wait();

	    const auto diff = std::chrono::system_clock::now() - start;
	    std::cout << std::chrono::duration<double>(diff).count() <<	" sec-
       onds\n";

	    std::cout << "f1: "	<< f1.get() << '\n';
	    std::cout << "f2: "	<< f2.get() << '\n';
	}

Possible output:
	waiting... 1.61803 seconds
	f1: 102334155
	f2: 433494437

See also
		     waits  for	the result, returns if it is not available for
       the specified
	  wait_for   timeout duration
		     (public member function)
		     waits for the result, returns if it is not	available  un-
       til specified time
	  wait_until point has been reached
		     (public member function)

http://cppreference.com		  2022.07.31		  std::future::wait(3)

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

home | help