+2008-08-25 Ashish Shrivastava <shashish@novell.com>
+
+ ** Fix for bug #391936 (bugzilla.novell.com)
+
+ * libebook/e-book.c (find_key_value), (backend_died_cb):
+ To solve hang issue after e-d-s crash.
+
2008-08-21 Shuai Liu <shuai.liu@sun.com>
** Fix for bug #548565
(e_contact_find_attribute_with_types): Check complete list of
values in a parameter when looking for some particular value.
-2008-08-16 Jörgen Scheibengruber <mfcn@gmx.de>
+2008-08-16 Jörgen Scheibengruber <mfcn@gmx.de>
(google_book_construct_base_uri):
* backends/google/util.c (_add_type_param_from_google_rel):
\f
+
+/* 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:
*/
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);