summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Aillon <caillon@fedoraproject.org>2007-06-03 19:35:05 +0000
committerChristopher Aillon <caillon@fedoraproject.org>2007-06-03 19:35:05 +0000
commitac0321ef679589f592fcb29a80f70a0f9334cb4a (patch)
tree31b76f248a240c5e8d2bd516fd3c081751242c7b
parent- Final version (diff)
downloadlibrewolf-fedora-ff-ac0321ef679589f592fcb29a80f70a0f9334cb4a.tar.gz
librewolf-fedora-ff-ac0321ef679589f592fcb29a80f70a0f9334cb4a.tar.bz2
librewolf-fedora-ff-ac0321ef679589f592fcb29a80f70a0f9334cb4a.zip
- Properly clean up threads with newer NSPR
-rw-r--r--firefox-1.5-thread-cleanup.patch28
-rw-r--r--firefox.spec7
2 files changed, 34 insertions, 1 deletions
diff --git a/firefox-1.5-thread-cleanup.patch b/firefox-1.5-thread-cleanup.patch
new file mode 100644
index 0000000..cfa3873
--- /dev/null
+++ b/firefox-1.5-thread-cleanup.patch
@@ -0,0 +1,28 @@
+Index: mozilla/xpcom/threads/nsThread.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/threads/nsThread.cpp,v
+retrieving revision 1.58.4.2
+diff -u -r1.58.4.2 nsThread.cpp
+--- mozilla/xpcom/threads/nsThread.cpp 1 Oct 2005 18:43:00 -0000 1.58.4.2
++++ mozilla/xpcom/threads/nsThread.cpp 7 May 2007 19:10:58 -0000
+@@ -470,9 +470,17 @@
+ nsThread::Shutdown()
+ {
+ if (gMainThread) {
+- // XXX nspr doesn't seem to be calling the main thread's destructor
+- // callback, so let's help it out:
+- nsThread::Exit(NS_STATIC_CAST(nsThread*, gMainThread));
++ // In most recent versions of NSPR the main thread's destructor
++ // callback will get called.
++ // In older versions of NSPR it will not get called,
++ // (unless we call PR_Cleanup).
++ // Because of that we:
++ // - call the function ourselves
++ // - set the data pointer to NULL to ensure the function will
++ // not get called again by NSPR
++ // The PR_SetThreadPrivate call does both of these.
++ // See also bugs 379550, 362768.
++ PR_SetThreadPrivate(kIThreadSelfIndex, NULL);
+ nsrefcnt cnt;
+ NS_RELEASE2(gMainThread, cnt);
+ NS_WARN_IF_FALSE(cnt == 0, "Main thread being held past XPCOM shutdown.");
diff --git a/firefox.spec b/firefox.spec
index 35ac0b2..b3fffdc 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -12,7 +12,7 @@
Summary: Mozilla Firefox Web browser.
Name: firefox
Version: 2.0.0.4
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.mozilla.org/projects/firefox/
License: MPL/LGPL
Group: Applications/Internet
@@ -62,6 +62,7 @@ Patch83: firefox-1.5-pango-cursor-position.patch
Patch84: firefox-2.0-pango-printing.patch
# Other
+Patch100: firefox-1.5-thread-cleanup.patch
Patch102: firefox-1.5-theme-change.patch
Patch104: firefox-1.5-ppc64.patch
@@ -157,6 +158,7 @@ removed in favor of xulrunner-devel.
%patch83 -p1 -b .pango-cursor-position
%patch84 -p0 -b .pango-printing
+%patch100 -p1 -b .thread-cleanup
%patch102 -p0 -b .theme-change
%patch104 -p1 -b .ppc64
@@ -416,6 +418,9 @@ fi
#---------------------------------------------------------------------
%changelog
+* Sun Jun 3 2007 Christopher Aillon <caillon@redhat.com> 2.0.0.4-2
+- Properly clean up threads with newer NSPR
+
* Wed May 30 2007 Christopher Aillon <caillon@redhat.com> 2.0.0.4-1
- Final version
bgstack15