GLib.Private
Description: Reference for GLib.Private

### Struct

# GLibPrivate

since: 2.0

#### Description

    struct GPrivate {
      /* No available fields */
    }

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.

Available since: 2.0

#### Functions

###### g_private_new

Creates a new `GPrivate`.

deprecated: 2.32 since: 2.0

#### Instance methods

###### g_private_get

Returns the current value of the thread local variable `key`.

since: 2.0

###### g_private_replace

Sets the thread local variable `key` to have the value `value` in the current thread.

since: 2.32

###### g_private_set

Sets the thread local variable `key` to have the value `value` in the current thread.

since: 2.0