GLib.Private

Fields

Name

Type

Access

Description

future

[object]

r

notify

GLib.DestroyNotify

r

p

object

r

Methods

get ()

replace (value)

set (value)

Details

class GLib.Private

The GLib.Private struct is an opaque data structure to represent a thread-local data key. It is approximately equivalent to the pthread_setspecific()/pthread_getspecific() APIs on POSIX and to TlsSetValue()/TlsGetValue() on Windows.

If you don’t already know why you might want this functionality, then you probably don’t need it.

GLib.Private is a very limited resource (as far as 128 per program, shared between all libraries). It is also not possible to destroy a GLib.Private after it has been used. As such, it is only ever acceptable to use GLib.Private in static scope, and even then sparingly so.

See G_PRIVATE_INIT() for a couple of examples.

The GLib.Private structure should be considered opaque. It should only be accessed via the g_private_ functions.

get()[source]
Returns:

the thread-local value

Return type:

object or None

Returns the current value of the thread local variable self.

If the value has not yet been set in this thread, None is returned. Values are never copied between threads (when a new thread is created, for example).

replace(value)[source]
Parameters:

value (object or None) – the new value

Sets the thread local variable self to have the value value in the current thread.

This function differs from GLib.Private.set() in the following way: if the previous value was non-None then the GLib.DestroyNotify handler for self is run on it.

New in version 2.32.

set(value)[source]
Parameters:

value (object or None) – the new value

Sets the thread local variable self to have the value value in the current thread.

This function differs from GLib.Private.replace() in the following way: the GLib.DestroyNotify for self is not called on the old value.