evolution-data-server r8399 - trunk/camel
- From: mbarnes svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r8399 - trunk/camel
- Date: Mon, 21 Jan 2008 12:53:15 +0000 (GMT)
Author: mbarnes
Date: Mon Jan 21 12:53:15 2008
New Revision: 8399
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=8399&view=rev
Log:
2008-01-21 Matthew Barnes <mbarnes redhat com>
* camel.c (camel_shutdown):
Save certificates _before_ calling PR_Cleanup(). Calling fsync()
from camel_certdb_save() after we've called PR_Cleanup() appears to
trigger a race between PR_Cleanup() -- which frees a lock protecting
thread bookmarking data -- and _pt_thread_death_internal() -- which
needs to temporarily lock the thread bookmarking data. (#445309)
Modified:
trunk/camel/ChangeLog
trunk/camel/camel.c
Modified: trunk/camel/camel.c
==============================================================================
--- trunk/camel/camel.c (original)
+++ trunk/camel/camel.c Mon Jan 21 12:53:15 2008
@@ -54,21 +54,19 @@
if (!initialised)
return;
-#if defined (HAVE_NSS) && !defined (G_OS_WIN32)
- /* For some reason we get into trouble on Win32 if we call these.
- * But they shouldn't be necessary as the process is exiting anywy?
- */
- NSS_Shutdown ();
-
- PR_Cleanup ();
-#endif /* HAVE_NSS */
-
certdb = camel_certdb_get_default ();
if (certdb) {
camel_certdb_save (certdb);
camel_object_unref (certdb);
}
+ /* These next calls must come last. */
+
+#if defined (HAVE_NSS)
+ NSS_Shutdown ();
+ PR_Cleanup ();
+#endif /* HAVE_NSS */
+
initialised = FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]