[balsa] Lock mailbox while accessing an idle callback id
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] Lock mailbox while accessing an idle callback id
- Date: Fri, 10 Mar 2017 17:38:21 +0000 (UTC)
commit 37e3aa1420b5d656c91614cd313538581d8eb1da
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Fri Mar 10 12:34:51 2017 -0500
Lock mailbox while accessing an idle callback id
* libbalsa/mailbox.c (lbm_need_threading_idle_cb),
(libbalsa_mailbox_msgno_inserted),
(libbalsa_mailbox_msgno_removed): lock mailbox while accessing
need_threading_idle_id.
ChangeLog | 9 +++++++++
libbalsa/mailbox.c | 8 ++++++++
2 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index fd055d0..fd4c4c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-03-10 Peter Bloomfield <pbloomfield bellsouth net>
+
+ Lock mailbox while accessing an idle callback id
+
+ * libbalsa/mailbox.c (lbm_need_threading_idle_cb),
+ (libbalsa_mailbox_msgno_inserted),
+ (libbalsa_mailbox_msgno_removed): lock mailbox while accessing
+ need_threading_idle_id.
+
2017-03-04 Peter Bloomfield <pbloomfield bellsouth net>
* src/main-window.c (bw_master_position_cb),
diff --git a/libbalsa/mailbox.c b/libbalsa/mailbox.c
index 5c6facc..2a10b23 100644
--- a/libbalsa/mailbox.c
+++ b/libbalsa/mailbox.c
@@ -1319,10 +1319,14 @@ libbalsa_mailbox_msgno_changed(LibBalsaMailbox * mailbox, guint seqno)
static gboolean
lbm_need_threading_idle_cb(LibBalsaMailbox *mailbox)
{
+ libbalsa_lock_mailbox(mailbox);
+
lbm_set_threading(mailbox, mailbox->view->threading_type);
mailbox->need_threading_idle_id = 0;
+ libbalsa_unlock_mailbox(mailbox);
+
return FALSE;
}
@@ -1357,10 +1361,12 @@ libbalsa_mailbox_msgno_inserted(LibBalsaMailbox *mailbox, guint seqno,
gtk_tree_path_free(path);
}
+ libbalsa_lock_mailbox(mailbox);
if (mailbox->need_threading_idle_id == 0) {
mailbox->need_threading_idle_id =
g_idle_add((GSourceFunc) lbm_need_threading_idle_cb, mailbox);
}
+ libbalsa_unlock_mailbox(mailbox);
mailbox->msg_tree_changed = TRUE;
gdk_threads_leave();
@@ -1479,10 +1485,12 @@ libbalsa_mailbox_msgno_removed(LibBalsaMailbox * mailbox, guint seqno)
gtk_tree_path_next(path);
}
+ libbalsa_lock_mailbox(mailbox);
if (mailbox->need_threading_idle_id == 0) {
mailbox->need_threading_idle_id =
g_idle_add((GSourceFunc) lbm_need_threading_idle_cb, mailbox);
}
+ libbalsa_unlock_mailbox(mailbox);
/* Now it's safe to destroy the node. */
g_node_destroy(dt.node);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]