summaryrefslogtreecommitdiffstats
path: root/src/libs/7zip/win/C
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2022-09-19 14:07:03 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2022-09-27 09:19:21 +0300
commitf23bccb3bce725041bfea050e6a4ce9a907a2af0 (patch)
tree9e9531b5a5c878be489a6791043a99434ac3e9f7 /src/libs/7zip/win/C
parent184ae4722f354c5c7ce7788ea93b5abcf889eb7d (diff)
Fix installer stalling when there's only one CPU core4.4
The installer operations are run in the global QThreadPool. The Operation::performOperation() implementation from "QtPatch" operation would call the Component::operations() method, that filtered the returned operation list with QtConcurrent::blockingFilter(). This would lock the installer when the global thread pool object was initialized with maxThreadCount of 1, with the only QThread object from the global pool already running the calling Operation::performOperation() function, which is waiting the result of Component::operations(). Fix by omitting usage of QtConcurrent::blockingFilter() and populating the returned operation list with std::copy_if - the components have usually only a handful operations each so this shouldn't be too noticeable of a performance regression. Task-number: QTIFW-2786 Change-Id: Ia6be9f6697310d3f955a8199712c54f345407067 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/7zip/win/C')
0 files changed, 0 insertions, 0 deletions