[Development] Is QtConcurrent's code generator still in use?
annulen at yandex.ru
Mon Nov 19 11:03:17 CET 2012
19.11.2012, 10:32, "Sorvig Morten" <Morten.Sorvig at digia.com>:
> On Nov 14, 2012, at 4:24 PM, Christian Kandeler <christian.kandeler at digia.com> wrote:
>> On 11/14/2012 12:17 PM, Sorvig Morten wrote:
>>> QtConcurrent is done. The implementation is not good enough to be used as a base for further development.
>> Can you be a bit more specific? What are the general problems and why
>> can't they be easily solved?
> Off the top of my head:
> - It uses a code generator which falls out of sync (there were no variadic templates at the time).
There are no variadic templates now either, unless you are using C++11.
> - Unclear separation between inline template code and non-template library code. It's hard to say where the binary compatible interface is.
Make it all template/inline and don't bother.
> - To much template code, causing bloat.
There's space/speed trade-off here.
> - The core of a concurrency engine should be a work-stealing data structure/scheduler. Qt Concurrent has simple work-stealing functionality, but is to tied to the global thread pool.
Since number of available CPU cores is usually constant over process lifetime (let's forget HPC clusters :), there's nothing wrong with global thread pool.
More information about the Development