summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/src/threads-basics.qdoc
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Move threading overviews from qtbase.git to qtdoc.gitSze Howe Koh2013-11-081-244/+0
| | | | | | | | | | | | | - This topic is relevant to multiple modules, as illustrated by the "Thread-Support in Qt Modules" page. Multithreading can be done in both C++ and QML. - Moving also fixes links to QML-related pages. - Snippets are copied, not moved. QThreadStorage docs need them. - QDoc: "DEPENDS += qtdoc" added to keep the "\reentrant" command working. It creates a link to the "reentrant" keyword. Change-Id: I2cdf6139e62d66911561c30fcca7aab160a694b1 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Clean up threading examplesSze Howe Koh2013-11-051-124/+3
| | | | | | | | | | | | | | | | | | | | | | | | | - Example 3 (Clock) is a collection of anti-patterns. - It implements a slot in a QThread subclass and then forces the new thread to use Qt::DirectConnection to invoke the slot in the "wrong" thread. - It talks about getting away with non-thread-safe usage - It uses a thread as a timer and then admits that it's an over- complicated approach. - Example 4 (Permanent Thread) is over-complicated yet incomplete. A better one exists in the QThread class ref. - Example 1 (Thread Pool) is covered by the QThreadPool class ref. - Example 2 (QtConcurrent::run()) is covered in the "Threading and Concurrent Programming Examples" page and the "QtConcurrentRun" page. - The undocumented "Hello Thread" example is covered in the QThread class ref. - These examples cannot be accessed from Qt Creator's Examples tool. - These examples are neither widget-related nor tutorials, contrary to their source paths. Task-number: QTBUG-33360 Change-Id: Ic79cb764ee925ddbcbeafee8e1d01db7fe0f6cfe Reviewed-by: Topi Reiniƶ <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Update, and reduce duplication of, QThread-related infoSze Howe Koh2013-10-211-25/+0
| | | | | | | | | | | | | | | | | | | | | | Added/Changed: - Move content from the Thread Basics overview to the QThread class ref - Rephrase bits for clarity - Use more links Removed: - (threads-basics.qdoc) Warning against moveToThread(this): This usage came about when people tried to add slots to a QThread subclass. This patch adds a warning against the root cause. - (threads-basics.qdoc) Note on sleep() et al.: They were made public in Qt 5.0. - (threads-basics.qdoc) The strategy for managing member variables: Sounds error-prone. Pushing results through signals is safer. - (qthread.cpp) The note about GUI classes: Irrelevant to QThread, and it's already mentioned elsewhere. Change-Id: I6bc53cc22b929523f9976d2b920f94c02bd7273e Reviewed-by: Geir Vattekar <geir.vattekar@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Doc: Expand on thread synchronization detailsSze Howe Koh2013-10-061-21/+5
| | | | | | | | | | | | - Introduce the concept of "mutual exclusion" - Rewrite/add explanations on how synchronization happens and how to use these tools - Remove similar content from the "Thread Basics" page - Fix links to examples Change-Id: Id008a8fc3f68bf242cae1704c5c8318149d908b4 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Generalize problems and solutions of mutex useSze Howe Koh2013-10-061-20/+0
| | | | | | | | | | These apply to other locks too, not just mutexes. Move from "Thread Basics" to "Synchronizing Threads" Change-Id: I6d7051cb225a8c836fb591a28b65d3de8fab4083 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Remove convoluted details of uncommon QMutex use caseSze Howe Koh2013-10-061-9/+0
| | | | | | Change-Id: If80068f44fef7ab0692b9dad99aa7e1a30cb72a6 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Show both low- and high-level thread syncing on the same pageSze Howe Koh2013-10-061-23/+0
| | | | | | | | | Move text from "Thread Basics" to "Synchronizing Threads" for a more complete overview. Change-Id: Ib87259ed551fa77278b57c5922df7f4b774a829a Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Rewrite section on threaded event loopsSze Howe Koh2013-10-061-20/+20
| | | | | | | | | | | - Focus on signals instead of events; programs rarely need to call QCoreApplication::postEvent() manually - Mention QMetaMethod::invokeMethod() - Reduce verbosity Change-Id: I170b96bd0134c0bc102ef1a344d4f0b88e504f86 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Discuss the concept of thread affinity in more detailSze Howe Koh2013-10-061-24/+2
| | | | | | | | | | | | | | | - Create a section dedicated to this concept, which is fundamental to signal/event handling - Move relevant content from the very broad "Thread Basics" page to the QObject class ref - Flesh out existing content, including distinguishing signals from events - Address the common misconception that "member" = "child"; this has been encountered several times in the Qt Project forums Change-Id: I5e7e6c848596e72c0bb623f8442c8389b81ad9ef Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Remove section about how to start threadsSze Howe Koh2013-09-141-36/+3
| | | | | | | | | | | | | | - Incomplete: It doesn't talk about how to use a raw QThread, or QRunnable, or Qt Concurrent. - Redundant: Its contents are already presented in QThread's class ref, and the line before this section links to the "Multithreading Technologies in Qt" overview page which provides a more complete intro Also remove snippet markers that are no longer used. Change-Id: I89b7bd72f10c8ffdfd9b7772e2493050aafc9c88 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Move multithreading guidelines to the overview pageSze Howe Koh2013-09-141-63/+3
| | | | | | | | | | | | | | It's helpful to see how to choose among different solutions, right after seeing short descriptions of all the solutions. - Some minor rewording was done during the move - The example about polling ports in a new thread was removed because there are better ways to do that without threads. Change-Id: I2cb571a4dbf9be93fb0ec88c60fb7406996c345b Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Removed reference to deprecated \badcode command.Jerome Pasion2013-02-191-1/+2
| | | | | | | | -QDoc doesn't differentiate between \badcode and \code. They both look the same in the output. Change-Id: Ifabd51b7e433a1c30cf30c267d3ce63dded1bd43 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* doc: Fix snippets in threading docsEskil Abrahamsen Blomfeldt2012-12-041-9/+9
| | | | | | | | | | | | The examples have been put under examples/widgets which is probably not correct, since they don't even have gui. The correct fix would probably be to move them into threads/, but that would risk a lot of breakage, so the conservative work-around is just to use the correct relative paths instead. Change-Id: I36c3aa45056c8825d1991f345ad7d7799e2fa5fc Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-14/+14
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Add a module page for QtConcurrentLars Knoll2012-08-151-1/+1
| | | | | | | | Fix some foward references from QtCore in addition. This will require more work. Change-Id: Ib1bade18c2cc220a7afe25e9fca6a3f50cb1174b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Prepare for building modular QtCore docs.Casper van Donderen2012-04-191-0/+572
This change fixes most qdoc errors in QtCore. There are about 900 left. The main thing this change does is moving documentation from qtcore from /doc/src to /src/corelib/doc. Other issues resolved are mis-use of qdoc commands. Change-Id: I002d01edfb13575e8bf27ce91596a577a92562d1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>