-
-
Notifications
You must be signed in to change notification settings - Fork 8.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UI: Remove QFuture
usage
#10957
UI: Remove QFuture
usage
#10957
Conversation
In general I'm in favour of using more C++ standard functionality instead of Qt variants if possible (and only rely on Qt variants when interacting with UI code) as this allows us to more easily decouple core functionality from the presentation layer. |
6572dc6
to
daf88c6
Compare
Split out the first commit to make code motion more visible vs actual changes |
daf88c6
to
d081349
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parts that I understand look okay. This is mostly shuffling code and changing types. The user who reported #10929 said that this PR fixes that Issue. I would still welcome additional review.
This is in preparation of the next change, to hopefully minimize the resulting diff
`QFuture`s are broken on older Qt versions, even with the deadlock workaround (see <obsproject#10929>)
d081349
to
2fa46c6
Compare
This seems to break legacy CMake configuration:
Is that to be expected and intentional? Thank you! |
@Chiitoo: not intentional, and not expected necessarily 😅 filed a follow-up PR to fix this at #10967 |
While we'll fix this, please note that legacy CMake will be removed in the near future. |
Yep, already getting into the new way of things. Thanks! |
Description
Unbreak OBS builds using older Qt versions, since
QFuture
s are broken on older Qt versions, even with the deadlock workaround (see #10929)Motivation and Context
This is meant to fix #10929
Originally the workaround for bouncing continuations between threads seemed sufficient, but there are Qt versions where even creating a ready future and trying to observe it breaks/causes deadlocks
How Has This Been Tested?
Tested "Start Streaming" works and error conditions (e.g. invalid configs) are still handled appropriately
Types of changes
Checklist: