| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The memory leak was fixed in two different ways in
b6c60b0c9778f51af8c80f853d840ba25910c6f4 and
0ee221b374ffef3657247be4c78e05689e04bef7
after the merge, the thread are now deleted twice.
|
|\
| |
| |
| |
| | |
Conflicts:
src/corelib/thread/qthread_unix.cpp
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This now deletes nativeThread objects
Task-number: QTBUG-13990
Reviewed-by: Shane Kearns
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The adopted thread monitor could cause a stray event panic if multiple
threads where added quickly. A new autotest was written to force the
fault (successfully). A fix was then added.
Task-number: QTBUG-13990
Reviewed-by: Shane Kearns
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was using pthreads, but RThreads are the true native threads for
Symbian, so switched to that. The test was passing with pthreads before
this change, and is passing with RThreads after.
Task-number: QTBUG-13990
Reviewed-by: Shane Kearns
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
if there is a QEventDispatcher in QAdoptedThread.
QAdoptedThread is supposed to be destroyed when the QThreadData is
destroyed. But QThreadData is ref-counted, and QEventDispatcher holds
a reference to it. QEventDispatcher is supposed to be destroyed
in QThreadPrivate::finish, which is supposed to be called from the
destructor of QAdoptedThread.
There is a circular dependence. We break it by calling finish in the
callback that is called when the thread is finished.
Task-number: QTBUG-17986
Reviewed-by: Brad
|
|/
|
|
|
|
|
| |
As also mentioned in QTBUG-16692
Reviewed-by: brad
Task-number: QTBUG-17257
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/webkit/imageanalyzer/imageanalyzer.h
examples/webkit/imageanalyzer/mainwindow.h
mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h
src/corelib/io/qfsfileengine_iterator_unix.cpp
src/corelib/io/qfsfileengine_iterator_win.cpp
src/corelib/kernel/qcoreapplication.cpp
src/network/access/qnetworkaccessdatabackend.cpp
src/plugins/bearer/connman/qconnmanservice_linux.cpp
src/plugins/platforms/openvglite/qwindowsurface_vglite.h
src/s60installs/bwins/QtCoreu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/s60installs.pro
tools/assistant/tools/assistant/helpviewer_qwv.h
tools/qdoc3/test/qt-html-templates.qdocconf
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
qmake/generators/symbian/symmake.cpp
src/corelib/global/qglobal.h
src/gui/kernel/qwidget_p.h
src/gui/painting/qtextureglyphcache.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
src/plugins/qpluginbase.pri
src/qbase.pri
tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
tests/auto/qthread/tst_qthread.cpp
tests/auto/selftests/expected_cmptest.txt
tests/auto/selftests/expected_crashes_3.txt
tests/auto/selftests/expected_longstring.txt
tests/auto/selftests/expected_maxwarnings.txt
tests/auto/selftests/expected_skip.txt
tools/assistant/tools/assistant/doc/assistant.qdocconf
tools/qdoc3/test/assistant.qdocconf
tools/qdoc3/test/designer.qdocconf
tools/qdoc3/test/linguist.qdocconf
tools/qdoc3/test/qdeclarative.qdocconf
tools/qdoc3/test/qmake.qdocconf
tools/qdoc3/test/qt-build-docs.qdocconf
tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
tools/qdoc3/test/qt.qdocconf
tools/qdoc3/test/qt_ja_JP.qdocconf
tools/qdoc3/test/qt_zh_CN.qdocconf
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If one call exit() before calling exec(), this should prevent the
event loop from starting once, but later calls to exec() should work.
This is a regression against Qt 4.6 introduced when fixing QTBUG-1184
Task-number: QTBUG-15378
Reviewed-by: Joao
Reviewed-by: Brad
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
finished()
Since we do not keep the mutex locked in QThreadPrivate::finish,
We could have races if the thread is destroyed or restarted from
another thread while we are still in that function
This solve tst_QCoreApplication::deliverInDefinedOrder on mac
Regression since a43583e0221311b7fe666726a
Reviewed-by: Brad
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fix the deadlock shown in the new test wait3_slowDestructor
Add a test for QThread::wait(timeout)
Task-number: QTBUG-15030
Reviewed-by: Joao
Reviewed-by: Brad
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The filesystem autotests are not paralized (because i was scary)
For reference, script I used:
cat corelib.pro | grep -v "=" | grep \\\\ | cut -f1 -d\\ | sed "s/\(.*\) /\1/" | grep -v file | xargs -I{} echo "echo CONFIG += parallel_test >> {}/{}.pro" > t
. t
Reviexed-by: Joao
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The documentation for Qt::AutoConnection states is a signal is emitted
from the same thread as the receiving object, the connection should
behave as Qt::DirectConnection. The actual behavior prior to this commit
was different from the documentation; if the signal was emitted in a
thread different from the sender's thread, then we would queue (which is
now corrected). By making the behavior match the documentation, it is
now possible to connect QThread's finished() signal to an object's
deleteLater() slot and the slot will execute when finished() is emitted
(previously it was queued).
QObject::deleteLater() uses a posted QEvent::DeferredDelete event to
trigger deletion of the object. In QThread, after emitting the
finished() signal, we now send all pending DeferredDelete events to
ensure that all pending deletions happen. We have precedence for this
behavior, QCoreApplication::exec() does the same thing after emitting
the aboutToQuit() signal.
Reviewed-by: joao
Reviewed-by: olivier
|
|
|
|
|
|
|
| |
Regression in 4.7.0 introduced by 13ca61fcfdc53a6a06a
Reviewed-by: brad
Task-number: QTBUG-13810
|
| |
|
|
|
|
|
|
|
|
| |
Make sure to lock the mutex before starting the threads... otherwise we
run the risk of losing the wakeup between start() and the lock being
acquired.
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
816523117bc00cfeb17e347f7fe5f11278a5e871
The quitNow flag needs to be reset at the beginning of exec() to allow
exec() to recurse and be run multiple times.
This changes reverts commit 816523117bc00cfeb17e347f7fe5f11278a5e871 an
introduces the QThreadPrivate::exited flag to fix the race between
start() and exit(), and QThreadPrivate::returnCode to make sure exec()
returns the code passed to exit().
Task-number: QTBUG-1184
Reviewed-by: olivier
|
|
|
|
|
|
|
|
|
|
|
| |
QThread::exit() tries to stop all running event loops, but does nothing
if the eventloop has not started yet. This is often the case for short-
exit method on an object that has affinity to the thread. This ensures
that the exit is called from the running eventloop, meaning the exit()
will never be lost.
Task-number: QTBUG-1184
Reviewed-by: Morten Sørvig
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Jeremy Katz
|
|
|
|
|
|
|
|
| |
beginthread() is not reliable when the new thread exits fast. So we are
changing this to use _beginthreadex() instead.
Reviewed-by: Trond
Reviewed-by: Bradley T. Hughes
|
|
|
|
| |
Reviewed-by: Trust Me
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/boxes/glshaders.cpp
demos/boxes/vector.h
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/fluidlauncher/pictureflow.h
doc/src/desktop-integration.qdoc
doc/src/distributingqt.qdoc
doc/src/examples-overview.qdoc
doc/src/examples.qdoc
doc/src/frameworks-technologies/dbus-adaptors.qdoc
doc/src/geometry.qdoc
doc/src/groups.qdoc
doc/src/objecttrees.qdoc
doc/src/platform-notes.qdoc
doc/src/plugins-howto.qdoc
doc/src/qt3support.qdoc
doc/src/qtdbus.qdoc
doc/src/qtdesigner.qdoc
doc/src/qtgui.qdoc
doc/src/qtmain.qdoc
doc/src/qtopengl.qdoc
doc/src/qtsvg.qdoc
doc/src/qtuiloader.qdoc
doc/src/qundo.qdoc
doc/src/richtext.qdoc
doc/src/topics.qdoc
src/corelib/tools/qdumper.cpp
src/gui/embedded/qkbdpc101_qws.cpp
src/gui/embedded/qkbdsl5000_qws.cpp
src/gui/embedded/qkbdusb_qws.cpp
src/gui/embedded/qkbdvr41xx_qws.cpp
src/gui/embedded/qkbdyopy_qws.cpp
src/gui/embedded/qmousebus_qws.cpp
src/gui/embedded/qmousevr41xx_qws.cpp
src/gui/embedded/qmouseyopy_qws.cpp
src/gui/painting/qpaintengine_d3d.cpp
src/gui/painting/qwindowsurface_d3d.cpp
src/opengl/gl2paintengineex/glgc_shader_source.h
src/opengl/gl2paintengineex/qglpexshadermanager.cpp
src/opengl/gl2paintengineex/qglpexshadermanager_p.h
src/opengl/gl2paintengineex/qglshader.cpp
src/opengl/gl2paintengineex/qglshader_p.h
src/opengl/util/fragmentprograms_p.h
src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp
src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp
src/script/parser/qscript.g
src/script/qscriptarray_p.h
src/script/qscriptasm_p.h
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.cpp
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmacore.cpp
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptmember_p.h
src/script/qscriptobject_p.h
src/script/qscriptprettypretty.cpp
src/script/qscriptprettypretty_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptxmlgenerator.cpp
src/script/qscriptxmlgenerator_p.h
tests/auto/linguist/lupdate/testdata/recursivescan/project.ui
tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
tools/linguist/shared/cpp.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/opengl/samplebuffers/glwidget.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/kernel/qobject.cpp
src/corelib/tools/qsharedpointer.cpp
src/gui/gui.pro
tests/auto/qhttp/tst_qhttp.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
|
| |/
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.gitignore
configure.exe
src/corelib/concurrent/qtconcurrentthreadengine.h
src/corelib/global/qnamespace.h
src/gui/graphicsview/qgraphicssceneevent.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qapplication_p.h
src/gui/kernel/qapplication_qws.cpp
src/gui/kernel/qwidget.h
src/gui/painting/qpaintengine_raster.cpp
src/gui/text/qfontdatabase.cpp
src/network/access/qnetworkaccesshttpbackend.cpp
tests/auto/network-settings.h
tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro
tests/auto/qvariant/tst_qvariant.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Configure.exe recompiled with MSVC6.
Conflicts:
configure.exe
examples/network/network.pro
src/gui/dialogs/qfiledialog_p.h
src/gui/dialogs/qfilesystemmodel_p.h
src/gui/kernel/qapplication.cpp
tests/auto/_Categories/qmake.txt
tests/auto/qfile/test/test.pro
tests/auto/qfile/tst_qfile.cpp
tests/auto/qlibrary/tst_qlibrary.cpp
tests/auto/qline/tst_qline.cpp
tests/auto/qstyle/tst_qstyle.cpp
tests/auto/qtextstream/tst_qtextstream.cpp
tests/auto/qtranslator/qtranslator.pro
tests/auto/qwaitcondition/tst_qwaitcondition.cpp
translations/qt_ja_JP.ts
|
| |
| |
| |
| |
| |
| |
| |
| | |
Each version of Qt has its own set of autotests, therefore
preprocessor directives relating to obsolete QT_VERSION's
are not necessary.
Reviewed-by: Carlos Duclos
|
| |
|
|
|