### Function

# GLib Hook first_valid

#### Declaration

    GHook*
    g_hook_first_valid (
      GHookList* hook_list,
      gboolean may_be_in_call
    )

#### Description

Returns the first `GHook` in a `GHookList` which has not been destroyed. The reference count for the `GHook` is incremented, so you must call `g_hook_unref()` to restore it when no longer needed. (Or call `g_hook_next_valid()` if you are stepping through the `GHookList`.)

This function is not directly available to language bindings.

#### Parameters

`hook_list`

  Type: `GHookList`

  A `GHookList`.

  The data is owned by the caller of the function.

`may_be_in_call`

  Type: `gboolean`

  `TRUE` if hooks which are currently running (e.g. in another thread) are considered valid. If set to `FALSE`, these are skipped.

#### Return value

Type: `GHook`

The first valid `GHook`, or `NULL` if none are valid.

The data is owned by the called function.