### Function

# GObject SignalAccumulator

since: 2.0

#### Declaration

    gboolean
    (* GSignalAccumulator) (
      GSignalInvocationHint* ihint,
      GValue* return_accu,
      const GValue* handler_return,
      gpointer data
    )

#### Description

The signal accumulator is a special callback function that can be used to collect return values of the various callbacks that are called during a signal emission.

The signal accumulator is specified at signal creation time, if it is left `NULL`, no accumulation of callback return values is performed. The return value of signal emissions is then the value returned by the last callback.

Available since: 2.0

#### Parameters

`ihint`

  Type: `GSignalInvocationHint`

  Signal invocation hint, see `GSignalInvocationHint`.

  The data is owned by the caller of the function.

`return_accu`

  Type: `GValue`

  Accumulator to collect callback return values in, this is the return value of the current signal emission.

  The data is owned by the caller of the function.

`handler_return`

  Type: `GValue`

  A `GValue` holding the return value of the signal handler.

  The data is owned by the caller of the function.

`data`

  Type: `gpointer`

  Callback data that was specified when creating the signal.

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

#### Return value

Type: `gboolean`

The accumulator function returns whether the signal emission should be aborted. Returning `TRUE` will continue with the signal emission. Returning `FALSE` will abort the current emission. Since 2.62, returning `FALSE` will skip to the CLEANUP stage. In this case, emission will occur as normal in the CLEANUP stage and the handler’s return value will be accumulated.