Turi Create  4.0
turi::thread Class Reference

#include <core/parallel/pthread_tools.hpp>

Classes

class  tls_data
 

Public Member Functions

 thread (size_t thread_id=0)
 
void launch (const boost::function< void(void)> &spawn_routine)
 
void launch (const boost::function< void(void)> &spawn_routine, size_t cpu_id)
 
void join ()
 
bool active () const
 Returns true if the thread is still running.
 
pthread_t pthreadid ()
 Returns the pthread thread id.
 

Static Public Member Functions

static tls_dataget_tls_data ()
 Static helper routines. More...
 
static size_t thread_id ()
 
static void set_thread_id (size_t t)
 
static anyget_local (const size_t &id)
 
static bool contains (const size_t &id)
 
static size_t erase (const size_t &id)
 
static void join (thread &other)
 
static size_t cpu_count ()
 

Detailed Description

A collection of routines for creating and managing threads.

The thread object performs limited exception forwarding. exception throws within a thread of type const char* will be caught and forwarded to the join() function. If the call to join() is wrapped by a try-catch block, the exception will be caught safely and thread cleanup will be completed properly.

Definition at line 856 of file pthread_tools.hpp.

Constructor & Destructor Documentation

◆ thread()

turi::thread::thread ( size_t  thread_id = 0)
inline

Creates a thread with a user-defined associated thread ID

Definition at line 957 of file pthread_tools.hpp.

Member Function Documentation

◆ contains()

static bool turi::thread::contains ( const size_t &  id)
inlinestatic

Check to see if there is an entry in the local map

Definition at line 908 of file pthread_tools.hpp.

◆ cpu_count()

static size_t turi::thread::cpu_count ( )
static

Return the number processing units (individual cores) on this system

◆ erase()

static size_t turi::thread::erase ( const size_t &  id)
inlinestatic

Removes the entry from the local map.

Returns
number of elements erased.

Definition at line 916 of file pthread_tools.hpp.

◆ get_local()

static any& turi::thread::get_local ( const size_t &  id)
inlinestatic

Get a reference to an any object

Definition at line 901 of file pthread_tools.hpp.

◆ get_tls_data()

static tls_data& turi::thread::get_tls_data ( )
static

Static helper routines.

Get the thread specific data associated with this thread

◆ join() [1/2]

static void turi::thread::join ( thread other)
static

This static method joins the invoking thread with the other thread object. This thread will not return from the join routine until the other thread complets it run.

◆ join() [2/2]

void turi::thread::join ( )
inline

Join the calling thread with this thread. const char* exceptions thrown by the thread is forwarded to the join() function.

Definition at line 988 of file pthread_tools.hpp.

◆ launch() [1/2]

void turi::thread::launch ( const boost::function< void(void)> &  spawn_routine)

execute this function to spawn a new thread running spawn_function routine

◆ launch() [2/2]

void turi::thread::launch ( const boost::function< void(void)> &  spawn_routine,
size_t  cpu_id 
)

Same as launch() except that you can specify a CPU on which to run the thread. This only currently supported in Linux and if invoked on a non Linux based system this will be equivalent to start().

◆ set_thread_id()

static void turi::thread::set_thread_id ( size_t  t)
inlinestatic

Set the id of the calling thread. This will typically be the index in the thread group. Between 0 to ncpus.

Definition at line 896 of file pthread_tools.hpp.

◆ thread_id()

static size_t turi::thread::thread_id ( )
inlinestatic

Get the id of the calling thread. This will typically be the index in the thread group. Between 0 to ncpus.

Definition at line 892 of file pthread_tools.hpp.


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