glibmm: Glib::Threads::Private< T > Class Template Reference
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...
|
|
Detailed Description
template<class T>
class Glib::Threads::Private< T >
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.
- Deprecated:
- Please use the thread_local keyword instead.
Member Typedef Documentation
using Glib::Threads::Private < T >:: DestructorFunc = void (*) (void*) |
Constructor & Destructor Documentation
|
delete |
|
inline explicit |
Constructor.
- Parameters
-
destructor_func Function pointer, or nullptr
. If destructor_func is notnullptr
and the stored data pointer is notnullptr
, this function is called when replace() is called and when the thread exits.
Member Function Documentation
|
static |
Deletes static_cast<T*>(data)
|
inline |
Gets the pointer stored in the calling thread.
- Returns
-
If no value has yet been set in this 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()
.