Commit Graph

47 Commits

Author SHA1 Message Date
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
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
956ffd949d Style 2018-08-26 15:26:49 +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
8324c2d305 Ref T160, continous worker now CIdentifiable and name is mandatory 2017-09-25 05:23:57 +02:00
Klaus Basan
ec77f9c64b Ref T160, further formatting 2017-09-25 05:23:57 +02:00
Klaus Basan
c0a6574c80 Ref T148, public getName so it can be used in logging 2017-09-24 19:54:04 +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
7d7ce055ef T102 Implement move constructor and move assignment for CWorkerPointer
so the connection to the worker's aboutToStart signal remains valid.
2017-09-24 19:49:34 +01:00
Mathew Sutcliffe
a37b12c8bc T102 Fixed mistake that caused CWorkerPointer to delete the worker
immediately as soon as it starts.
2017-09-24 19:49:33 +01:00
Mathew Sutcliffe
fdbfda848f T102 Don't try to wait for a worker to finish while holding a lock
on the mutex that protects its finished flag, as it will deadlock.
2017-09-24 19:49:31 +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
969c077182 Fixed possible memory leak in BlackMisc::singleShot. 2016-12-06 09:46:47 +01:00
Mathew Sutcliffe
b62d1c303c refs #783 Remove the flawed 4-arg version of BlackMisc::singleShot and change signature of 3-arg version. 2016-12-06 09:34:07 +01:00
Mathew Sutcliffe
64e2414b56 refs #783 Isolated improvements in BlackMisc::singleShot using QSharedPointer and C++14 lambda init-capture. 2016-12-06 09:34:06 +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
514d460e57 refs #628 Refactor CWorker::invoke into a free function and expand its API. 2016-04-03 18:17:40 +01:00
Mathew Sutcliffe
a895cc2c54 refs #624 Removed many workarounds, no longer needed. 2016-03-22 16:02:58 +00:00
Mathew Sutcliffe
a8fc899219 refs #624 Use std alias traits. 2016-03-22 16:02:48 +00:00
Mathew Sutcliffe
b33781717e refs #624 Remove noexcept from destructors, which are implicitly noexcept. 2016-03-19 21:07:56 +00:00
Mathew Sutcliffe
c26a6fef8b refs #624 Use noexcept instead of Q_DECL_NOEXCEPT. 2016-03-19 21:07:15 +00:00
Mathew Sutcliffe
1282fc4c14 refs #540 Add the ability to capture the current call stack, and use it in singleShot. 2015-12-08 22:30:10 +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
56d8bf4651 refs #457 Workaround GCC 4.7.2 internal compiler error. 2015-11-19 20:58:25 +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
6131030267 refs #457 Refactored SFINAE into a protected part of CWorker. 2015-11-19 20:58:22 +00: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
46cff6bce8 Add doxygen note to CWorker 2015-05-28 22:46:32 +02:00
Roland Winklmeier
a089d3641d refs #403 add BlackMisc shared library build 2015-05-05 21:34:19 +02: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
5d491b9456 refs #380, use CWorker instead of QConcurrent for threaded reader (bookings/VATSIM file) 2015-03-20 16:33:43 +01: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
Mathew Sutcliffe
cbbf9c256a refs #348 Added thread safety guarantees in CLogSubscriber. 2014-11-30 00:57:43 +01:00
Mathew Sutcliffe
c30bf9f61e refs #336 Fixed CLogHandler thread safety in swiftcore. 2014-10-16 17:06:46 +01:00
Roland Winklmeier
d032d250d5 Fix missing mutex include on Linux 2014-10-07 16:41:18 +02:00
Klaus Basan
0d74afe02a Fixed return type to void as discussed:
https://dev.vatsim-germany.org/issues/325#note-26
2014-10-07 13:17:37 +02:00
Mathew Sutcliffe
418dd5e126 refs #325, CWorker class for executing arbitrary tasks in their own threads 2014-10-07 13:10:49 +02:00