### Function

# GObject signal_emitv

since: 2.0

#### Declaration

    void
    g_signal_emitv (
      const GValue* instance_and_params,
      guint signal_id,
      GQuark detail,
      GValue* return_value
    )

#### Description

Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.

Note that `g_signal_emitv()` doesn’t change `return_value` if no handlers are connected, in contrast to `g_signal_emit()` and g_signal_emit_valist().

Available since: 2.0

#### Parameters

`instance_and_params`

  Type: An array of `GValue`

  Argument list for the signal emission. The first element in the array is a `GValue` for the instance the signal is being emitted on. The rest are any arguments to be passed to the signal.

  The data is owned by the caller of the function.

`signal_id`

  Type: `guint`

  The signal id.

`detail`

  Type: `GQuark`

  The detail.

`return_value`

  Type: `GValue`

  Location to store the return value of the signal emission. This must be provided if the specified signal returns a value, but may be ignored otherwise.

  The argument will be modified by the function.
  The argument can be `NULL`.
  The caller of the function takes ownership of the data, and is responsible for freeing it.