### Function

# GLib idle_add_full

#### Declaration [src]

    guint
    g_idle_add_full (
      gint priority,
      GSourceFunc function,
      gpointer data,
      GDestroyNotify notify
    )

#### Description [src]

Adds a function to be called whenever there are no higher priority events pending.

If the function returns `G_SOURCE_REMOVE` or `FALSE` it is automatically removed from the list of event sources and will not be called again.

See mainloop memory management for details on how to handle the return value and memory management of `data`.

This internally creates a main loop source using `g_idle_source_new()` and attaches it to the global `GMainContext` using `g_source_attach()`, so the callback will be invoked in whichever thread is running that main context. You can do these steps manually if you need greater control or to use a custom main context.

This function is renamed to `g_idle_add()` in language bindings.

#### Parameters

`priority`

  Type: `gint`

  The priority of the idle source. Typically this will be in the range between `G_PRIORITY_DEFAULT_IDLE` and `G_PRIORITY_HIGH_IDLE`.

`function`

  Type: `GSourceFunc`

  Function to call.

`data`

  Type: `gpointer`

  Data to pass to `function`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`notify`

  Type: `GDestroyNotify`

  Function to call when the idle is removed, or `NULL`.

  The argument can be `NULL`.

#### Return value

Type: `guint`

The ID (greater than 0) of the event source.