ThreadLocal Class Template Reference

#include <ThreadLocal.h>

List of all members.


Detailed Description

template<class T>
class SimTK::ThreadLocal< T >

This class represents a "thread local" variable: one which has a different value on each thread.

This is useful in many situations when writing multithreaded code. For example, it can be used as temporary workspace for calculations. If a single workspace object were created, all access to it would need to be synchronized to prevent threads from overwriting each other's values. Using a ThreadLocal instead means that a separate workspace object will automatically be created for each thread.

To use it, simply create a ThreadLocal, then call get() or upd() to get a readable or writable reference to the value for the current thread:

 ThreadLocal<int> x;
 ...
 x.upd() = 5;
 assert(x.get() == 5);
 

Public Member Functions

 ThreadLocal ()
 Create a new ThreadLocal variable.
 ThreadLocal (const T &defaultValue)
 Create a new ThreadLocal variable.
 ~ThreadLocal ()
T & upd ()
 Get a reference to the value for the current thread.
const T & get () const
 Get a const reference to the value for the current thread.

Constructor & Destructor Documentation

ThreadLocal (  )  [inline]

Create a new ThreadLocal variable.

ThreadLocal ( const T &  defaultValue  )  [inline]

Create a new ThreadLocal variable.

Parameters:
defaultValue the initial value which the variable will have on each thread

~ThreadLocal (  )  [inline]

References C::T.


Member Function Documentation

T& upd (  )  [inline]

Get a reference to the value for the current thread.

References C::T.

const T& get (  )  const [inline]

Get a const reference to the value for the current thread.

References C::T.


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

Generated on Fri Sep 26 07:44:29 2008 for SimTKcore by  doxygen 1.5.6