Clementine
Public Member Functions | List of all members
asio::thread Class Reference

A simple abstraction for starting threads. More...

#include <thread.hpp>

Inheritance diagram for asio::thread:
Inheritance graph
[legend]
Collaboration diagram for asio::thread:
Collaboration graph
[legend]

Public Member Functions

template<typename Function >
 thread (Function f)
 Start a new thread that executes the supplied function. More...
 
 ~thread ()
 Destructor.
 
void join ()
 Wait for the thread to exit. More...
 

Detailed Description

A simple abstraction for starting threads.

The asio::thread class implements the smallest possible subset of the functionality of boost::thread. It is intended to be used only for starting a thread and waiting for it to exit. If more extensive threading capabilities are required, you are strongly advised to use something else.

Thread Safety
Distinct objects: Safe.
Shared objects: Unsafe.
Example
A typical use of asio::thread would be to launch a thread to run an io_context's event processing loop:
asio::io_context io_context;
// ...
asio::thread t(boost::bind(&asio::io_context::run, &io_context));
// ...
t.join();

Constructor & Destructor Documentation

◆ thread()

template<typename Function >
asio::thread::thread ( Function  f)
inlineexplicit

Start a new thread that executes the supplied function.

This constructor creates a new thread that will execute the given function or function object.

Parameters
fThe function or function object to be run in the thread. The function signature must be:
void f();

Member Function Documentation

◆ join()

void asio::thread::join ( )
inline

Wait for the thread to exit.

This function will block until the thread has exited.

If this function is not called before the thread object is destroyed, the thread itself will continue to run until completion. You will, however, no longer have the ability to wait for it to exit.


The documentation for this class was generated from the following file: