aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book-view-listener.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook/e-book-view-listener.c')
-rw-r--r--addressbook/backend/ebook/e-book-view-listener.c29
1 files changed, 4 insertions, 25 deletions
diff --git a/addressbook/backend/ebook/e-book-view-listener.c b/addressbook/backend/ebook/e-book-view-listener.c
index 705cc155c8..7e0f6d5c29 100644
--- a/addressbook/backend/ebook/e-book-view-listener.c
+++ b/addressbook/backend/ebook/e-book-view-listener.c
@@ -32,48 +32,27 @@ struct _EBookViewListenerPrivate {
guint stopped : 1;
};
+/* Only release our listener reference when the idle is finished. */
static gboolean
e_book_view_listener_check_queue (EBookViewListener *listener)
{
- static gint thrash = 0;
- gint queue_len;
-
if (listener->priv->stopped) {
listener->priv->idle_id = 0;
- return TRUE;
+ bonobo_object_unref (BONOBO_OBJECT (listener));
+ return FALSE;
}
- queue_len = g_list_length (listener->priv->response_queue);
-
- bonobo_object_ref (BONOBO_OBJECT (listener));
if (listener->priv->response_queue != NULL) {
gtk_signal_emit (GTK_OBJECT (listener),
e_book_view_listener_signals [RESPONSES_QUEUED]);
}
- /* This means we didn't make any progress in dealing with what is on our
- response queue. */
- if (queue_len == g_list_length (listener->priv->response_queue))
- ++thrash;
- else
- thrash = 0;
-
- if (thrash > 20 || listener->priv->response_queue == NULL) {
-
- if (thrash > 20) {
- g_error ("e_book_view_listener_check_queue thrashing!");
- thrash = 0;
- }
-
+ if (listener->priv->response_queue == NULL) {
listener->priv->idle_id = 0;
-
- /* Only release our listener reference when the idle is finished. */
bonobo_object_unref (BONOBO_OBJECT (listener));
-
return FALSE;
}
-
return TRUE;
}