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

FreeBSD Manual Pages

  
 
  

home | help
std::jthread::joinable(3)     C++ Standard Libary    std::jthread::joinable(3)

NAME
       std::jthread::joinable -	std::jthread::joinable

Synopsis
	  [[nodiscard]]	bool joinable()	const noexcept;	 (since	C++20)

	  Checks if the	std::jthread object identifies an active thread	of ex-
       ecution.
	  Specifically,	 returns  true if get_id() != std::jthread::id(). So a
       default
	  constructed jthread is not joinable.

	  A thread that	has finished executing code,  but  has	not  yet  been
       joined is still
	  considered an	active thread of execution and is therefore joinable.

Parameters
	  (none)

Return value
	  true if the jthread object identifies	an active thread of execution,
       false otherwise

Example
       // Run this code

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

	void foo()
	{
	    std::this_thread::sleep_for(std::chrono::seconds(1));
	}

	int main()
	{
	    std::jthread t;
	    std::cout  <<  "before  starting, joinable:	" << std::boolalpha <<
       t.joinable()
		      << '\n';

	    t =	std::jthread(foo);
	    std::cout << "after	starting, joinable: " << t.joinable()
		      << '\n';

	    t.join();
	    std::cout << "after	joining, joinable: " <<	t.joinable()
		      << '\n';
	}

Output:
	before starting, joinable: false
	after starting,	joinable: true
	after joining, joinable: false

References
	    * C++20 standard (ISO/IEC 14882:2020):

		     * 32.4.3.2	Members	[thread.jthread.mem]

See also
	  get_id returns the id	of the thread
		 (public member	function)
	  join	 waits for the thread to finish	its execution
		 (public member	function)
	  detach permits the thread to execute independently from  the	thread
       handle
		 (public member	function)

http://cppreference.com		  2022.07.31	     std::jthread::joinable(3)

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

home | help