From 232cc604d7827c51456534976cf8c69446b3418b Mon Sep 17 00:00:00 2001 From: Vivek Dasmohapatra Date: Fri, 20 May 2011 20:33:58 +0100 Subject: Catch the case where there's a hole in our logic and an internal request hasn't been cleaned up properly --- src/request.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/request.c b/src/request.c index 6b18e81e..0abef720 100644 --- a/src/request.c +++ b/src/request.c @@ -277,6 +277,15 @@ _mcd_request_dispose (GObject *object) DEBUG ("%p", object); + /* shouldn't ever actually get this far with a blocked account, * + * but we have to clear the lock if we do or we'll deadlock */ + if (_mcd_request_is_internal (self) && self->account != NULL) + { + const gchar *path = mcd_account_get_object_path (self->account); + _mcd_request_unblock_account (path); + g_warning ("internal request disposed without being handled or failed"); + } + tp_clear_object (&self->account); tp_clear_object (&self->clients); tp_clear_object (&self->predicted_handler); -- cgit v1.2.1