FYI: Updates in ThreadWeaver

Mirko Boehm mirko at kde.org
Tue Apr 2 15:00:42 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Frameworks Developers,

recently I have been updating ThreadWeaver for frameworks. Until now,
most of the changes have been extensions of the test suite, updates for
changes in Qt that happened in the meantime, and the addition of a
benchmark. Until Akademy, I plan to do the following things:

- - Solve the Job-auto-delete issue by changing the queue to be based on
shared pointers instead of raw pointers. So far ThreadWeaver did not
auto-delete completed jobs, since I consider that inelegant and a
violation of separation of concerns. This issue should nicely go away if
shared pointers are queued.

- - Introduce the any-of collection, a collection that is finished when
one of it's jobs completes. Think of DNS queries or checks for updates
from multiple servers.

- - Add better progress tracking support for individual or aggregate jobs,
mostly for convenience.

The changes to the API should be minimal. At Akademy, I plan to have a
presentation that introduces programming concepts, new features and
performance considerations. This includes explaining the differences
between QThreadPool/QtConcurrent and ThreadWeaver. For that, I might add
the one or other programming example and benchmark.

There are a few questions where your feedback would be really helpful:

- - Examples are currently in the kdelibs tree, at
tier1/threadweaver/examples. I like that they are in the same
repository, but still - is this the right place?

- - API and code feedback would be very welcome. For example, the are
pairs of methods where one of the expects the main lock to be held,
where the other would expect it to be free. Those are called
myFunkyMethod_locked() and myFunkyMethod(), or
myFunkyMethod_p()/myFunkyMethod(). Which version would you prefer? I
prefer the _locked() naming. Note that these functions are not really
used by end users.

- - If you can think of any features or additions before the Frameworks
release, please let me know.

All the best,

Mirko.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlFa8poACgkQYSSaITCTnKUyuwCgy1/US/mJ6bFyPlBvrIpJbBJt
gjEAnjP3p86HJ5pmy4wSzU1lJ0XkMRLi
=QRGr
-----END PGP SIGNATURE-----


More information about the Kde-frameworks-devel mailing list