GLib.Private¶
record (struct)
The 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.
Private is a very limited resource (as far as 128 per program,
shared between all libraries). It is also not possible to destroy a
Private after it has been used. As such, it is only ever acceptable
to use Private in static scope, and even then sparingly so.
See G_PRIVATE_INIT() for a couple of examples.
The Private structure should be considered opaque. It should only
be accessed via the g_private_ functions.
Methods¶
get¶
Returns the current value of the thread local variable key.
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¶
Sets the thread local variable key to have the value value in the
current thread.
This function differs from Private.set in the following way: if
the previous value was non-None then the GDestroyNotify handler for
key is run on it.
Parameters:
value— the new value
set¶
Sets the thread local variable key to have the value value in the
current thread.
This function differs from Private.replace in the following way:
the GDestroyNotify for key is not called on the old value.
Parameters:
value— the new value