ThreadLocal< T > Class Template Reference

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

#include <ThreadLocal.h>

List of all members.

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.

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);
 

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]

Member Function Documentation

const T& get (  )  const [inline]

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

T& upd (  )  [inline]

Get a reference to the value for the current thread.


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

Generated by  doxygen 1.6.2