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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::jthread::detach - std::jthread::detach

Synopsis
	  void detach();  (since C++20)

	  Separates  the thread	of execution from the jthread object, allowing
       execution to
	  continue independently. Any allocated	resources will be  freed  once
       the thread exits.

	  After	calling	detach *this no	longer owns any	thread.

Parameters
	  (none)

Return value
	  (none)

Postconditions
	  joinable is false.

Exceptions
	  std::system_error if joinable() == false or an error occurs.

Example
       // Run this code

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

	void independentThread()
	{
	    std::cout << "Starting concurrent thread.\n";
	    std::this_thread::sleep_for(std::chrono::seconds(2));
	    std::cout << "Exiting concurrent thread.\n";
	}

	void threadCaller()
	{
	    std::cout << "Starting thread caller.\n";
	    std::jthread t(independentThread);
	    t.detach();
	    std::this_thread::sleep_for(std::chrono::seconds(1));
	    std::cout << "Exiting thread caller.\n";
	}

	int main()
	{
	    threadCaller();
	    std::this_thread::sleep_for(std::chrono::seconds(5));
	}

Possible output:
	Starting thread	caller.
	Starting concurrent thread.
	Exiting	thread caller.
	Exiting	concurrent thread.

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
	  join	   waits for the thread	to finish its execution
		   (public member function)
		   checks  whether  the	 thread	 is joinable, i.e. potentially
       running in parallel
	  joinable context
		   (public member function)
	  C documentation for
	  thrd_detach

http://cppreference.com		  2024.06.10	       std::jthread::detach(3)

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

home | help