Disconnects a handler from a cancellable instance similar to g_signal_handler_disconnect(). Additionally, in the event that a signal handler is currently running, this call will block until the handler has finished. Calling this function from a cancelled signal handler will therefore result in a deadlock.
This avoids a race condition where a thread cancels at the same time as the cancellable operation is finished and the signal handler is removed. See cancelled for details on how to use this.
If cancellable is NULL or handler_id is 0 this function does nothing.