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 <chrono>
	#include <iostream>
	#include <thread>
	using namespace	std::chrono_literals;

	void foo()
	{
	    std::this_thread::sleep_for(500ms);
	}

	int main()
	{
	    std::cout << std::boolalpha;

	    std::jthread t;
	    std::cout  <<  "before  starting,  joinable:  " << 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';

	    t =	std::jthread{foo};
	    t.detach();
	    std::cout << "after	detaching,  joinable:  "  <<  t.joinable()  <<
       '\n';

	}

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

References
	    * C++23 standard (ISO/IEC 14882:2023):

	    * 33.4.4.3 Members [thread.jthread.mem]
	    * 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		  2024.06.10	     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.1.quarterly>

home | help