pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/x11/qt4-libs Do not destroy the pthread keys. It creat...
details: https://anonhg.NetBSD.org/pkgsrc/rev/ff85dd2e8b30
branches: trunk
changeset: 347850:ff85dd2e8b30
user: joerg <joerg%pkgsrc.org@localhost>
date: Tue May 31 21:35:11 2016 +0000
description:
Do not destroy the pthread keys. It creates race conditions during
destruction and random panics as side effect.
diffstat:
x11/qt4-libs/Makefile | 4 +-
x11/qt4-libs/distinfo | 4 +-
x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp | 25 +++++++++-
3 files changed, 27 insertions(+), 6 deletions(-)
diffs (68 lines):
diff -r 4d426c224efe -r ff85dd2e8b30 x11/qt4-libs/Makefile
--- a/x11/qt4-libs/Makefile Tue May 31 21:33:50 2016 +0000
+++ b/x11/qt4-libs/Makefile Tue May 31 21:35:11 2016 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.111 2016/05/05 22:04:34 joerg Exp $
+# $NetBSD: Makefile,v 1.112 2016/05/31 21:35:11 joerg Exp $
PKGNAME= qt4-libs-${QTVERSION}
-PKGREVISION= 2
+PKGREVISION= 3
COMMENT= C++ X GUI toolkit
.include "../../x11/qt4-libs/Makefile.common"
diff -r 4d426c224efe -r ff85dd2e8b30 x11/qt4-libs/distinfo
--- a/x11/qt4-libs/distinfo Tue May 31 21:33:50 2016 +0000
+++ b/x11/qt4-libs/distinfo Tue May 31 21:35:11 2016 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.108 2016/05/25 07:46:47 nros Exp $
+$NetBSD: distinfo,v 1.109 2016/05/31 21:35:11 joerg Exp $
SHA1 (qt-everywhere-opensource-src-4.8.7.tar.gz) = 76aef40335c0701e5be7bb3a9101df5d22fe3666
RMD160 (qt-everywhere-opensource-src-4.8.7.tar.gz) = afb5e5a99388e6429faca59cb5000054feffd166
@@ -70,7 +70,7 @@
SHA1 (patch-src_3rdparty_webkit_Source_WebKit2_DerivedSources.pro) = 7ae5feb79efd0836b74000e183b96f5775fd3043
SHA1 (patch-src_corelib_io_io.pri) = cde98927b524c92fae1e053c2359e77bde2c240a
SHA1 (patch-src_corelib_io_qfilesystemwatcher.cpp) = bb16b95d20286b1aa069dc25843d7e0067cc0268
-SHA1 (patch-src_corelib_thread_qthread__unix.cpp) = 5fdc6d22ea52ac89d6ae68a1dcf9de775265429b
+SHA1 (patch-src_corelib_thread_qthread__unix.cpp) = 67fbdc29d6da0aa7309a7aeb653a5abf10bd4d78
SHA1 (patch-src_gui_painting_qpaintengine__mac.cpp) = dc44116d5d138020e5d525ec5b7fd0f1b44ebeca
SHA1 (patch-src_network_ssl_qsslsocket__openssl__symbols.cpp) = 3ad682b86d2e9bd2b282caa298508dc3e9dd8566
SHA1 (patch-src_network_ssl_qsslsocket__openssl__symbols__p.h) = 417846ba9edab8638cafa41a54ef60029467ef80
diff -r 4d426c224efe -r ff85dd2e8b30 x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp
--- a/x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp Tue May 31 21:33:50 2016 +0000
+++ b/x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp Tue May 31 21:35:11 2016 +0000
@@ -1,6 +1,6 @@
-$NetBSD: patch-src_corelib_thread_qthread__unix.cpp,v 1.2 2016/05/05 22:04:34 joerg Exp $
+$NetBSD: patch-src_corelib_thread_qthread__unix.cpp,v 1.3 2016/05/31 21:35:11 joerg Exp $
---- src/corelib/thread/qthread_unix.cpp.orig 2015-06-23 15:32:25.000000000 +0000
+--- src/corelib/thread/qthread_unix.cpp.orig 2015-05-07 14:14:48.000000000 +0000
+++ src/corelib/thread/qthread_unix.cpp
@@ -120,6 +120,12 @@ enum { ThreadPriorityResetFlag = 0x80000
#if defined(Q_CC_XLC) || defined (Q_CC_SUN)
@@ -15,3 +15,24 @@
#ifdef HAVE_TLS
static __thread QThreadData *currentThreadData = 0;
+@@ -167,20 +173,6 @@ static void create_current_thread_data_k
+ pthread_key_create(¤t_thread_data_key, destroy_current_thread_data);
+ }
+
+-static void destroy_current_thread_data_key()
+-{
+- pthread_once(¤t_thread_data_once, create_current_thread_data_key);
+- pthread_key_delete(current_thread_data_key);
+-
+- // Reset current_thread_data_once in case we end up recreating
+- // the thread-data in the rare case of QObject construction
+- // after destroying the QThreadData.
+- pthread_once_t pthread_once_init = PTHREAD_ONCE_INIT;
+- current_thread_data_once = pthread_once_init;
+-}
+-Q_DESTRUCTOR_FUNCTION(destroy_current_thread_data_key)
+-
+-
+ // Utility functions for getting, setting and clearing thread specific data.
+ static QThreadData *get_thread_data()
+ {
Home |
Main Index |
Thread Index |
Old Index