### Function

# GLib timeout_add_seconds

since: 2.14

#### Declaration

    guint
    g_timeout_add_seconds (
      guint interval,
      GSourceFunc function,
      gpointer data
    )

#### Description

Sets a function to be called at regular intervals with the default priority, `G_PRIORITY_DEFAULT`.

The function is called repeatedly until it returns `G_SOURCE_REMOVE` or `FALSE`, at which point the timeout is automatically destroyed and the function will not be called again.

This internally creates a main loop source using `g_timeout_source_new_seconds()` and attaches it to the main loop context using g_source_attach(). You can do these steps manually if you need greater control. Also see g_timeout_add_seconds_full().

It is safe to call this function from any thread.

Note that the first call of the timer may not be precise for timeouts of one second. If you need finer precision and have such a timeout, you may want to use `g_timeout_add()` instead.

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

The interval given is in terms of monotonic time, not wall clock time. See g_get_monotonic_time().

Available since: 2.14

This function is not directly available to language bindings.

The implementation of this method is provided by `g_timeout_add_seconds_full()` in language bindings

#### Parameters

`interval`

  Type: `guint`

  The time between calls to the function, in seconds.

`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.

#### Return value

Type: `guint`

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