/* You don't have to call this functions for a #GStaticPrivate with an unbounded lifetime, i.e. objects declared 'static', but if you have a #GStaticPrivate as a member of a structure and the structure is freed, you should also free the #GStaticPrivate.  */
void g_static_private_free(GStaticPrivate *private_key)
/* You don't have to call this functions for a #GStaticPrivate with an unbounded lifetime, i.e. objects declared 'static', but if you have a #GStaticPrivate as a member of a structure and the structure is freed, you should also free the #GStaticPrivate.  */
void g_static_private_free(GStaticPrivate *private_key)
{
  guint idx = private_key->index;
  if (!idx)
    return;
  private_key->index = 0;
  G_LOCK (g_thread);
  g_thread_free_indices = g_slist_prepend (g_thread_free_indices,
                                           GUINT_TO_POINTER (idx));
  G_UNLOCK (g_thread);
}