rpms/evolution/F-13 evolution-2.30.2-async-event-idle-cb.patch, NONE, 1.1 evolution.spec, 1.459, 1.460

Matthew Barnes mbarnes at fedoraproject.org
Thu Jun 24 15:21:32 UTC 2010


Author: mbarnes

Update of /cvs/pkgs/rpms/evolution/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv16955

Modified Files:
	evolution.spec 
Added Files:
	evolution-2.30.2-async-event-idle-cb.patch 
Log Message:

* Thu Jun 24 2010 Matthew Barnes <mbarnes at redhat.com> - 2.30.2-2.fc13
- Add patch for GNOME bug #622547 (uncancelled idle cb in destroy).


evolution-2.30.2-async-event-idle-cb.patch:
 mail-mt.c |   19 +++++++++++++------
 mail-mt.h |    2 +-
 2 files changed, 14 insertions(+), 7 deletions(-)

--- NEW FILE evolution-2.30.2-async-event-idle-cb.patch ---
diff -up evolution-2.30.2/mail/mail-mt.c.async-event-idle-cb evolution-2.30.2/mail/mail-mt.c
--- evolution-2.30.2/mail/mail-mt.c.async-event-idle-cb	2010-06-20 08:15:05.000000000 -0400
+++ evolution-2.30.2/mail/mail-mt.c	2010-06-24 11:18:16.718108542 -0400
@@ -608,6 +608,7 @@ struct _proxy_msg {
 	mail_async_event_t type;
 
 	GThread *thread;
+	guint idle_id;
 
 	MailAsyncFunc func;
 	gpointer o;
@@ -628,10 +629,11 @@ do_async_event(struct _proxy_msg *m)
 }
 
 static gint
-idle_async_event(gpointer mm)
+idle_async_event (struct _proxy_msg *m)
 {
-	do_async_event(mm);
-	mail_msg_unref(mm);
+	m->idle_id = 0;
+	do_async_event (m);
+	mail_msg_unref (m);
 
 	return FALSE;
 }
@@ -655,7 +657,7 @@ mail_async_event_new (void)
 	return ea;
 }
 
-gint
+guint
 mail_async_event_emit (MailAsyncEvent *ea,
                        mail_async_event_t type,
                        MailAsyncFunc func,
@@ -664,7 +666,7 @@ mail_async_event_emit (MailAsyncEvent *e
                        gpointer data)
 {
 	struct _proxy_msg *m;
-	gint id;
+	guint id;
 
 	/* We dont have a reply port for this, we dont
 	 * care when/if it gets executed, just queue it. */
@@ -687,7 +689,8 @@ mail_async_event_emit (MailAsyncEvent *e
 	 * overflow and deadlock us. */
 	if (type == MAIL_ASYNC_GUI) {
 		if (mail_in_main_thread ())
-			g_idle_add(idle_async_event, m);
+			m->idle_id = g_idle_add (
+				(GSourceFunc) idle_async_event, m);
 		else
 			mail_msg_main_loop_push(m);
 	} else
@@ -712,6 +715,10 @@ mail_async_event_destroy (MailAsyncEvent
 			errno = EDEADLK;
 			return -1;
 		}
+		if (m->idle_id > 0) {
+			g_source_remove (m->idle_id);
+			m->idle_id = 0;
+		}
 		g_mutex_unlock(ea->lock);
 		mail_msg_wait(id);
 		g_mutex_lock(ea->lock);
diff -up evolution-2.30.2/mail/mail-mt.h.async-event-idle-cb evolution-2.30.2/mail/mail-mt.h
--- evolution-2.30.2/mail/mail-mt.h.async-event-idle-cb	2010-06-20 08:15:04.000000000 -0400
+++ evolution-2.30.2/mail/mail-mt.h	2010-06-24 11:18:16.718108542 -0400
@@ -102,7 +102,7 @@ typedef void (*MailAsyncFunc)(gpointer ,
 /* create a new async event handler */
 MailAsyncEvent *mail_async_event_new(void);
 /* forward a camel event (or other call) to the gui thread */
-gint mail_async_event_emit(MailAsyncEvent *ea, mail_async_event_t type, MailAsyncFunc func, gpointer , gpointer , gpointer );
+guint mail_async_event_emit(MailAsyncEvent *ea, mail_async_event_t type, MailAsyncFunc func, gpointer , gpointer , gpointer );
 /* wait for all outstanding async events to complete */
 gint mail_async_event_destroy(MailAsyncEvent *ea);
 


Index: evolution.spec
===================================================================
RCS file: /cvs/pkgs/rpms/evolution/F-13/evolution.spec,v
retrieving revision 1.459
retrieving revision 1.460
diff -u -p -r1.459 -r1.460
--- evolution.spec	23 Jun 2010 07:32:43 -0000	1.459
+++ evolution.spec	24 Jun 2010 15:21:32 -0000	1.460
@@ -39,7 +39,7 @@
 
 Name: evolution
 Version: 2.30.2
-Release: 1%{?dist}
+Release: 2%{?dist}
 Group: Applications/Productivity
 Summary: Mail and calendar client for GNOME
 License: GPLv2+ and GFDL
@@ -65,6 +65,9 @@ Patch12: evolution-2.9.1-im-context-rese
 # RH bug #589555
 Patch14: evolution-2.30.1-help-contents.patch
 
+# GNOME bug #622547
+Patch15: evolution-2.30.2-async-event-idle-cb.patch
+
 ## Dependencies ###
 
 Requires(pre): GConf2
@@ -231,6 +234,7 @@ This package contains the plugin to impo
 %patch11 -p1 -b .fix-conduit-dir
 %patch12 -p1 -b .im-context-reset
 %patch14 -p1 -b .help-contents
+%patch15 -p1 -b .async-event-idle-cb
 
 mkdir -p krb5-fakeprefix/include
 mkdir -p krb5-fakeprefix/lib
@@ -679,6 +683,9 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 
 %changelog
+* Thu Jun 24 2010 Matthew Barnes <mbarnes at redhat.com> - 2.30.2-2.fc13
+- Add patch for GNOME bug #622547 (uncancelled idle cb in destroy).
+
 * Mon Jun 21 2010 Milan Crha <mcrha at redhat.com> - 2.30.2-1.fc13
 - Update to 2.30.2
 - Remove patch to fix the giant "mail-mark-notjunk" icon (fixed upstream)



More information about the scm-commits mailing list