### Function

# GObject signal_connect_object

since: 2.0

#### Declaration

    gulong
    g_signal_connect_object (
      GObjectTypeInstance* instance,
      const gchar* detailed_signal,
      GCallback c_handler,
      GObject* gobject,
      GConnectFlags connect_flags
    )

#### Description

This is similar to g_signal_connect_data(), but uses a closure which ensures that the `gobject` stays alive during the call to `c_handler` by temporarily adding a reference count to `gobject`.

When the `gobject` is destroyed the signal handler will be automatically disconnected. Note that this is not currently threadsafe (ie: emitting a signal while `gobject` is being destroyed in another thread is not safe).

Available since: 2.0

This function is not directly available to language bindings.

#### Parameters

`instance`

  Type: `GTypeInstance`

  The instance to connect to.

  The data is owned by the caller of the function.

`detailed_signal`

  Type: `const gchar*`

  A string of the form “signal-name::detail”.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`c_handler`

  Type: `GCallback`

  The `GCallback` to connect.

`gobject`

  Type: `GObject`

  The object to pass as data to `c_handler`.

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

`connect_flags`

  Type: `GConnectFlags`

  A combination of `GConnectFlags`.

#### Return value

Type: `gulong`

The handler id.