Bug 587300 - g_cancellable_disconnect deadlock

add documentation to clarify that a deadlock is the expected case for
calling this function from a signal handler
This commit is contained in:
Ryan Lortie 2009-11-11 23:48:06 -05:00
parent 3d09b8e09c
commit 6b7b7a7602

View File

@ -707,9 +707,12 @@ g_cancellable_connect (GCancellable *cancellable,
* @cancellable: A #GCancellable or %NULL. * @cancellable: A #GCancellable or %NULL.
* @handler_id: Handler id of the handler to be disconnected, or %0. * @handler_id: Handler id of the handler to be disconnected, or %0.
* *
* Disconnects a handler from an cancellable instance similar to * Disconnects a handler from a cancellable instance similar to
* g_signal_handler_disconnect() but ensures that once this * g_signal_handler_disconnect(). Additionally, in the event that a
* function returns the handler will not run anymore in any thread. * signal handler is currently running, this call will block until the
* handler has finished. Calling this function from a
* #GCancellable::cancelled signal handler will therefore result in a
* deadlock.
* *
* This avoids a race condition where a thread cancels at the * This avoids a race condition where a thread cancels at the
* same time as the cancellable operation is finished and the * same time as the cancellable operation is finished and the