Jonas Kvinge
320a1b81c9
Fix incorrect use of QFutureWatcher
...
To avoid a race condition, it is important to call setFuture() after doing the connections.
See: https://doc.qt.io/qt-6/qfuturewatcher.html
2021-07-14 10:18:15 +01:00
Jim Broadus
dbe67bf32b
Fix closure timing hole.
...
When a closure involves an ObjectHelper, a connection is made from the
receiver's destroyed signal and the helper object's deleteLater slot. Since
the signal between the sender and the helper object isn't disconnected until
either object is actually destroyed, this leaves a hole where the helper
holds a pointer to an invalid receiver object, but is still able to receive
the signal connected to its Invoke slot.
Instead of connecting the destroyed signal to deleteLater, connect it to a new
TearDown slot that immediately disconnects the signal then calls deleteLater.
2020-01-11 00:53:35 -08:00
John Maguire
f300946c81
Remove most usages of QFutureWatcher
2015-11-27 14:28:12 +00:00
John Maguire
2d61fe6c87
Changed my mind about automatically passing QFutures.
2015-11-27 12:04:14 +00:00
Arnaud Bienner
ec98a68c3d
Update SLOT signatures.
...
There weren't update as part of commit 33494dcddcb64f9fccae215f1100cfa885c72039: this prevented the slider to be updated, among other things.
2015-11-27 11:44:59 +01:00
John Maguire
3cc9c1e446
Remove ModelFutureWatcher
2015-11-26 19:02:08 +00:00
John Maguire
689858026e
Actually pass the finished QFuture back.
2015-11-26 18:42:12 +00:00
John Maguire
2cd15ff430
Add NewClosure overload for QFuture
2015-11-26 18:35:17 +00:00
John Maguire
b2a532be62
Experiment with typesafe time units
2015-07-20 14:35:13 +01:00
John Maguire
aa22a43f44
Add exponential back-off to Amazon requests.
2015-04-17 12:10:40 +01:00
John Maguire
bebd781fdf
Reformat all non-3rd-party C/C++/Objective-C++.
...
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
-style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire
d309d4ab27
Use c++11 instead of boost where possible.
2014-02-06 16:51:39 +01:00
John Maguire
cc43e339c1
Use boost function for compatibility
2013-11-22 11:53:47 +00:00
John Maguire
b17b075361
Compile fixes for 10.9
2013-11-21 17:59:31 +00:00
John Maguire
dd59aaada0
Delete closures if the receiver is deleted.
2013-02-26 16:27:44 +01:00
John Maguire
195e1cb2ad
Support arbitrary return type in closure for member function pointer.
2012-12-13 16:55:23 +01:00
John Maguire
020f08438f
Support member function pointers in Closure.
...
Bonus: type-safe slots
2012-12-13 16:27:55 +01:00
John Maguire
94f76a9d08
Support function pointers and std functions with arguments in Closure.
2012-12-13 16:13:38 +01:00
John Maguire
c294098aef
Use tr1 for mac compatibility
2012-11-26 10:10:20 +01:00
John Maguire
11f664083a
Add support for standard function callbacks in NewClosure (including C++11 lambdas).
2012-11-26 09:41:26 +01:00
John Maguire
4e9231976e
Unpack variadic arguments into QGenericArguments without boost::tuple.
2012-11-22 17:57:26 +01:00
John Maguire
8171192df5
Port Closure to variadic templates.
2012-11-22 17:19:04 +01:00
John Maguire
66c8d6d360
Tidy up a bit.
2012-04-13 15:53:17 +02:00
John Maguire
133c2e1640
Postpone the database check & backup to a little while after startup.
2012-04-13 15:49:56 +02:00
John Maguire
a09165c392
Make it more obviously wrong to use the Closure internals.
2012-03-20 15:14:44 +01:00
John Maguire
e4ae4b6df5
Remove poor man's static asserts.
2012-03-19 21:19:24 +01:00
John Maguire
c4d3062459
Make the SharedClosure implementation a bit less horrible.
2012-03-19 21:17:57 +01:00
David Sansome
d7a5af07fb
Copy+paste the shared pointer closure constructor a couple of times for different numbers of arguments.
2012-03-19 19:38:36 +00:00
John Maguire
e1d77e0124
Add support for QSharedPointer in Closure.
2012-03-19 19:37:57 +01:00
David Sansome
b9e08bbfe6
Update podcasts on a schedule and on demand. Update them immediately after subscribing, and make episodes appear in the tree.
2012-03-09 15:26:15 +00:00
David Sansome
9041117867
Move everything around in the source tree - static libraries and external binaries now go in "ext/". Add a generic worker pool.
2012-01-05 23:25:13 +00:00