Classes | Public Member Functions | Static Public Member Functions

graphlab::thread Class Reference
[GraphLab Utility Classes and Functions]

#include <pthread_tools.hpp>

List of all members.

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.
static size_t thread_id ()
static void join (thread &other)
static void thread_destroy_callback ()
static void set_thread_destroy_callback (void(*callback)())
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 495 of file pthread_tools.hpp.


Constructor & Destructor Documentation

graphlab::thread::thread ( size_t  thread_id = 0  )  [inline]

Creates a thread with a user-defined associated thread ID

Definition at line 564 of file pthread_tools.hpp.


Member Function Documentation

static size_t graphlab::thread::cpu_count (  )  [static]

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

static tls_data& graphlab::thread::get_tls_data (  )  [static]

Static helper routines.

Get the thread specific data associated with this thread

void graphlab::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 595 of file pthread_tools.hpp.

static void graphlab::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.

void graphlab::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().

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

execute this function to spawn a new thread running spawn_function routine

static size_t graphlab::thread::thread_id (  )  [inline, static]

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

Definition at line 523 of file pthread_tools.hpp.


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