evolution-data-server r9433 - in trunk/addressbook: . libebook
- From: msuman svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9433 - in trunk/addressbook: . libebook
- Date: Mon, 25 Aug 2008 09:41:01 +0000 (UTC)
Author: msuman
Date: Mon Aug 25 09:41:01 2008
New Revision: 9433
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9433&view=rev
Log:
Ashish Shrivastava <shashish novell com> ** Fix for bug #391936 (bugzilla.novell.com) (Don't hang if e-d-s crashes).
Modified:
trunk/addressbook/ChangeLog
trunk/addressbook/libebook/e-book.c
Modified: trunk/addressbook/libebook/e-book.c
==============================================================================
--- trunk/addressbook/libebook/e-book.c (original)
+++ trunk/addressbook/libebook/e-book.c Mon Aug 25 09:41:01 2008
@@ -3115,6 +3115,25 @@
+
+/* Set a flag for operation from the operation hash table */
+static void
+find_key_value (gpointer key, gpointer value, gpointer data)
+{
+ EBookOp *op;
+
+ op = value;
+
+ if (op == NULL) {
+ g_warning ("find_key_value: Cannot find operation ");
+ return;
+ }
+
+ op->status = E_BOOK_ERROR_SOURCE_NOT_LOADED;
+ if (op->synchronous)
+ e_flag_set (op->flag);
+}
+
/**
* e_book_load_uri:
*/
@@ -3122,7 +3141,13 @@
static void
backend_died_cb (EComponentListener *cl, gpointer user_data)
{
- EBook *book = user_data;
+ EBook *book = (EBook *)user_data;
+
+ d(printf ("backend_died_cb\n"));
+
+ g_mutex_lock (book->priv->mutex);
+ g_hash_table_foreach (book->priv->id_to_op, find_key_value, NULL);
+ g_mutex_unlock (book->priv->mutex);
book->priv->load_state = E_BOOK_SOURCE_NOT_LOADED;
g_signal_emit (book, e_book_signals [BACKEND_DIED], 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]