From 6b7b7a76020e76370e416d794eceb99937b9ed33 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Wed, 11 Nov 2009 23:48:06 -0500 Subject: [PATCH] =?UTF-8?q?Bug=C2=A0587300=20-=20g=5Fcancellable=5Fdisconn?= =?UTF-8?q?ect=20deadlock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add documentation to clarify that a deadlock is the expected case for calling this function from a signal handler --- gio/gcancellable.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gio/gcancellable.c b/gio/gcancellable.c index 36973ad93..5f80022a1 100644 --- a/gio/gcancellable.c +++ b/gio/gcancellable.c @@ -707,9 +707,12 @@ g_cancellable_connect (GCancellable *cancellable, * @cancellable: A #GCancellable or %NULL. * @handler_id: Handler id of the handler to be disconnected, or %0. * - * Disconnects a handler from an cancellable instance similar to - * g_signal_handler_disconnect() but ensures that once this - * function returns the handler will not run anymore in any thread. + * 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 + * #GCancellable::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