glibmm 2.66.5
|
Thread-local data pointer. More...
#include <glibmm/threads.h>
Public Types | |
using | DestructorFunc = void(*)(void *) |
Public Member Functions | |
Private (const Private< T > &)=delete | |
Private< T > & | operator= (const Private< T > &)=delete |
Private (DestructorFunc destructor_func=&Private< T >::delete_ptr) | |
Constructor. More... | |
T * | get () |
Gets the pointer stored in the calling thread. More... | |
void | set (T *data) |
Sets the pointer in the calling thread without calling destructor_func() . More... | |
void | replace (T *data) |
Sets the pointer in the calling thread and calls destructor_func() . More... | |
GPrivate * | gobj () |
Static Public Member Functions | |
static void | delete_ptr (void *data) |
Deletes static_cast<T*>(data) More... | |
Thread-local data pointer.
It is recommended that all instances of this class are statically allocated. The first time an instance is used (get(), set() or replace() is called) glib allocates a scarce OS resource that cannot be deallocated.
using Glib::Threads::Private< T >::DestructorFunc = void (*) (void*) |
|
delete |
|
inlineexplicit |
Constructor.
destructor_func | Function pointer, or nullptr . If destructor_func is not nullptr and the stored data pointer is not nullptr , this function is called when replace() is called and when the thread exits. |
|
static |
Deletes static_cast<T*>(data)
|
inline |
Gets the pointer stored in the calling thread.
nullptr
is returned.
|
inline |
|
delete |
|
inline |
Sets the pointer in the calling thread and calls destructor_func()
.
If a function pointer (and not nullptr
) was specified in the constructor, and the stored data pointer before the call to replace() is not nullptr
, then destructor_func()
is called with this old pointer value.
|
inline |
Sets the pointer in the calling thread without calling destructor_func()
.