Convenience function to connect to the cancelled signal.
Also handles the race condition that may happen if the cancellable is cancelled right before connecting.
callback
is called at most once, either directly at the time of the connect if this is
already cancelled, or when this is cancelled in some thread.
data_destroy_func
will be called when the handler is disconnected, or immediately if the cancellable is already cancelled.
See cancelled for details on how to use this.
Since GLib 2.40, the lock protecting this is not held when callback
is invoked. This lifts
a restriction in place for earlier GLib versions which now makes it easier to write cleanup code that unconditionally invokes e.g.
cancel.
this |
A Cancellable. |
callback |
The ObjectConstructorFunc to connect. |
data |
Data to pass to |
data_destroy_func |
Free function for |
The id of the signal handler or 0 if this has already been cancelled. |