ROSE
0.11.96.11
|
Thread local data per object instance.
This is useful when you have a class non-static data member that needs to be thread-local.
where SAWYER_THREAD_LOCAL
is a macro expanding to, perhaps, "__thread". C++ only allows thread-local global variables or static member data, as with foo
above. That means that a.foo
and b.foo
alias one another. But if you need some member data to be thread-local per object, you can declare it as MultiInstanceTls<T>
. For instance, a.bar
and b.bar
are different storage locations, and are also thread-local.
Definition at line 190 of file Synchronization.h.
#include <Synchronization.h>
Public Member Functions | |
MultiInstanceTls () | |
Default-constructed value. | |
MultiInstanceTls (const T &value) | |
Initialize value. | |
MultiInstanceTls (const MultiInstanceTls &other) | |
MultiInstanceTls & | operator= (const T &value) |
Assignment operator. | |
MultiInstanceTls & | operator= (const MultiInstanceTls &other) |
T & | operator* () |
const T & | operator* () const |
T * | operator-> () |
const T * | operator-> () const |
operator T () const | |
Implicit conversion to enclosed type. More... | |
T & | get () |
Get interior object. | |
const T & | get () const |
Get interior object. | |
|
inline |
Implicit conversion to enclosed type.
This is so that the data member can be used as if it were type T
rather than a MultiInstanceTls object.
Definition at line 275 of file Synchronization.h.
References Sawyer::Container::Map< K, T, Cmp, Alloc >::insertMaybeDefault().