The docs claim that QThreadPool always creates at least one thread.
However, the user can (usually by mistake) request zero or a negative
number of threads.
The maxThreadCount() function is simply returning the value, that was
requested by the user.
Since it's a public API, it is used in several places in QtConcurrent,
where it is assumed that the value is always positive. This can lead
to a crash if the user sets zero as a maxThreadCount.
Update all such places with std::max(maxThreadCount(), 1).
Prefer this approach over changing the return value of
maxThreadCount(), because its behavior is documented and tested.
Amends
|
||
|---|---|---|
| .. | ||
| qtconcurrentfilter | ||
| qtconcurrentfiltermapgenerated | ||
| qtconcurrentiteratekernel | ||
| qtconcurrentmap | ||
| qtconcurrentmedian | ||
| qtconcurrentrun | ||
| qtconcurrenttask | ||
| qtconcurrentthreadengine | ||
| CMakeLists.txt | ||
| testhelper_functions.h | ||