The GPrivate 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.
GPrivate is a very limited resource (as far as 128 per program,
shared between all libraries). It is also not possible to destroy a
GPrivate after it has been used. As such, it is only ever acceptable
to use GPrivate in static scope, and even then sparingly so.
See G_PRIVATE_INIT() for a couple of examples.
The GPrivate structure should be considered opaque. It should only
be accessed via the g_private_ functions.
The GPrivate 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. GPrivate is a very limited resource (as far as 128 per program, shared between all libraries). It is also not possible to destroy a GPrivate after it has been used. As such, it is only ever acceptable to use GPrivate in static scope, and even then sparingly so. See G_PRIVATE_INIT() for a couple of examples. The GPrivate structure should be considered opaque. It should only be accessed via the g_private_ functions.