Commit Graph

51 Commits

Author SHA1 Message Date
Mat Sutcliffe
479210957a Issue #77 Break dependency of worker on identifiable 2020-08-29 14:16:19 +01:00
Mat Sutcliffe
802576eda9 Issue #77 Rename 2020-08-29 14:16:11 +01:00
Mat Sutcliffe
2dc86652c2 Issue #77 Include style 2020-08-28 00:45:26 +01:00
Mat Sutcliffe
2f1e3f47f9 Track worker construction and destruction
Added debug log messages in case a worker still exists when the `qApp` is destroyed.
This would mean that a `quitAndWait` is missing or is being skipped somewhere.
2020-06-12 18:42:41 +01:00
Klaus Basan
1da66ce6e9 [Worker] Stop timer in correct thread 2020-06-12 18:42:38 +01:00
Klaus Basan
b0d5b3c6d1 [Worker] Log. how long it takes to quitAndWait a worker
* sometimes the shutdown sequence of swift takes extremly long, this is to identify which workers are affected
* reduced "wait time"
* function so each worker can have its own "wait" time
* for a worker there are 2 "waits", the quitAndWait of the worker and the wait of CRegularThread (dtor)


Originally Ref T145, T647
2020-06-12 18:42:35 +01:00
Mat Sutcliffe
61d933be12 Tidying up around QPointer guards. 2019-05-13 11:21:06 +02:00
Klaus Basan
0bbe9988e7 Ref T647, using VERIFY as discussed https://discordapp.com/channels/539048679160676382/539925070550794240/573261700413915166 2019-05-13 11:20:51 +02:00
Mat Sutcliffe
e9a4c49d68 Ref T547 Update license masthead in all source code files. 2019-02-22 20:36:43 +00:00
Mat Sutcliffe
7b4d3874a6 Ref T541 Abandoned worker shouldn't interrupt if it's in the owner's thread. 2019-02-22 20:36:32 +00:00
Klaus Basan
25df1921eb Style 2019-02-22 20:35:33 +00:00
Mat Sutcliffe
bd9948bbff Ref T486 Using QMetaObject::invokeMethod with pointer-to-member-function (or functor). 2019-02-22 20:34:53 +00:00
Mat Sutcliffe
9f85a7b560 Fixed clazy warnings: pass large objects by reference to const. 2019-02-22 20:23:33 +00:00
Mat Sutcliffe
bad31ab428 Ref T314 Rework CContinuousWorker::finish to invoke deleteLater in proper sequence. 2018-10-05 17:39:56 +02:00
Mat Sutcliffe
c98454ff8a Ref T314 Style. 2018-10-05 17:39:56 +02:00
Klaus Basan
d37c52fed5 Ref T315, owner is normal pointer, disucssion:
- https://swift-project.slack.com/archives/GCKMFLG30/p1536331871000100
- and in comments of T315
2018-09-09 02:55:14 +02:00
Mat Sutcliffe
82648038ac Ref T315, T314 Reverted workarounds to help diagnose original bugs
and added a couple more asserts.
2018-09-08 15:36:24 +02:00
Klaus Basan
5096df034b Ref T314, thread CContinuousWorker::finish
- use application thread if there is no owner
- use QPointer for owner
- more detailled error message
2018-08-31 20:08:06 +02:00
Klaus Basan
1b72333b05 Trial to fix worker's finish "deleteLater" 2018-08-26 15:26:55 +02:00
Roland Winklmeier
4cf3bc580f Use case sensitive name of Windows header files 2018-08-25 22:12:06 +02:00
Klaus Basan
b671c2a0a5 Style, removed redundant CForm overrides 2018-08-07 20:41:06 +02:00
Klaus Basan
4fef6fe0b2 Jenkins not yet supporting the new QMetaObject::invokeMethod syntax, locally on Qt 5.11 it is working 2018-07-31 01:43:33 +02:00
Klaus Basan
19f5fd1735 New syntax for QMetaObject::invokeMethod(this, &CWorker::deleteLater) 2018-07-27 09:36:09 +02:00
Klaus Basan
4f3cb6447f Ref T292, Ref T285 minor adjustments in worker/cache 2018-07-26 21:40:52 +02:00
Klaus Basan
d6fd53287f Improved graceful shutdown, added "m_shutdownInProgress"
* no assert when wait is called in same thread, just ignore wait
* quitAndWait readers, also works if not already noved in new thread (see above)
2018-04-13 23:36:49 +02:00
Klaus Basan
df25dc5c18 Ref T145, temp. workaround until task is completed 2017-10-31 15:39:34 +01:00
Klaus Basan
8324c2d305 Ref T160, continous worker now CIdentifiable and name is mandatory 2017-09-25 05:23:57 +02:00
Klaus Basan
b49b7f8c71 ASSERT when CContinuousWorker::quitAndWait is called by object thread -> deadlock 2017-09-24 19:53:50 +01:00
Klaus Basan
e2853c3db2 Ref T109, worker tweaks
* set name already in ctor
* Q_ASSERT_X for start
2017-09-24 19:50:56 +01:00
Klaus Basan
4a7ad09e46 Ref T105, m_updateTimer as protected member of CContinuousWorker
* stop timer
* default cleanup implementation
* set timer name
2017-09-24 19:50:14 +01:00
Klaus Basan
7f3643fb0e Ref T105, use enabled in CContinuousWorker
* removed slots
* getName
2017-09-24 19:50:06 +01:00
Mathew Sutcliffe
41ff563e19 T66 A new smart pointer for managing a CContinuousWorker subclass instance.
Owns the worker before it starts, when ownership is transferred to the thread.
2017-05-14 17:21:34 +01:00
Mathew Sutcliffe
ca81c65eae T66 CContinuousWorker tracks whether it has been started,
and when starting checks that it was not already started.
2017-05-14 17:21:33 +01:00
Mathew Sutcliffe
a30eb18a9c On Windows, warn if a thread was terminated with its QThread still in running state.
I hope this catches if the data cache serializer is killed in the middle of a save.
2016-08-26 21:04:43 +01:00
Klaus Basan
dc02ff2d0c Addded log categories / human readable pattern 2016-06-29 01:04:44 +02:00
Roland Winklmeier
3d7a39ed00 Fix BlackMisc header includes
* Include only what is used
* Use forward declaration when possible
* Sorted includes

refs #630
2016-05-13 17:05:49 +02:00
Mathew Sutcliffe
c26a6fef8b refs #624 Use noexcept instead of Q_DECL_NOEXCEPT. 2016-03-19 21:07:15 +00:00
Klaus Basan
f03f3ef224 refs #605, make sure the main thread is not terminated
In unit test a reader was to started. Here it was happening the main thread was terminated accidentally
2016-03-18 01:09:23 +00:00
Mathew Sutcliffe
1dc4864ffa refs #476 Facility to ask worker to abandon its task and finish early. 2015-11-26 18:24:10 +00:00
Mathew Sutcliffe
feeca47060 Assert earlier when thenWithResult type doesn't match lambda return type. 2015-11-19 21:05:18 +00:00
Mathew Sutcliffe
3cc9468d63 refs #457 CWorker support for non-void tasks and thenWithResult(). 2015-11-19 20:58:23 +00:00
Mathew Sutcliffe
7a37c86782 Rewrite CWorker::waitForFinished using std::future<void> instead of QWaitCondition. 2015-11-19 20:51:17 +00:00
Klaus Basan
8e56a14caf refs #438, allow to cancel parser
* added flag for parsing success
* unload driver cancels parsing
* assert for invoke
* using waitForFinished
2015-06-03 16:25:53 +02:00
Mathew Sutcliffe
732903b243 refs #439 Adjust noexcept specification of worker methods commonly used in destructors. 2015-06-02 18:54:08 +01:00
Mathew Sutcliffe
17c1742bec refs #439 CWorkerBase::waitForFinished(). 2015-06-02 18:54:08 +01:00
Roland Winklmeier
1b26311983 Fix license header spelling 2015-04-16 00:59:56 +02:00
Klaus Basan
aafee8eafd refs #402, post merge feedback by MS 2015-04-11 02:09:10 +02:00
Klaus Basan
f0db7ed660 refs #380, QConcurrent vs QThread sample and fix
* in same step fixed nullptr issue in worker (with no parent)
* Changed from QConccurennt::run to CWorker in core
2015-03-20 16:33:23 +01:00
Mathew Sutcliffe
2a1541786a refs #334 Added class CContinuousWorker, base class for long-lived threaded worker objects. Inherits from CWorkerBase. 2014-11-30 02:29:21 +01:00
Mathew Sutcliffe
7b352c907a refs #334 Refactored CWorker parts relating to finished() signal into new base class CWorkerBase. 2014-11-30 02:29:18 +01:00