### Function

# GLib atomic_rc_box_release_full

since: 2.58

#### Declaration [src]

    void
    g_atomic_rc_box_release_full (
      gpointer mem_block,
      GDestroyNotify clear_func
    )

#### Description [src]

Atomically releases a reference on the data pointed by `mem_block`.

If the reference was the last one, it will call `clear_func` to clear the contents of `mem_block`, and then will free the resources allocated for `mem_block`.

Note that implementing weak references via `clear_func` is not thread-safe: clearing a pointer to the memory from the callback can race with another thread trying to access it as `mem_block` already has a reference count of 0 when the callback is called and will be freed.

Available since: 2.58

#### Parameters

`mem_block`

  Type: `gpointer`

  A pointer to reference counted data.

  The called function takes ownership of the data, and is responsible for freeing it.

`clear_func`

  Type: `GDestroyNotify`

  A function to call when clearing the data.