[Development] Is QtConcurrent's code generator still in use?

Konstantin Tokarev 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.

-- 
Regards,
Konstantin



More information about the Development mailing list