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(&current_thread_data_key, destroy_current_thread_data);
+ }
+ 
+-static void destroy_current_thread_data_key()
+-{
+-    pthread_once(&current_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