Comments (1)
hi @pinebit,
The QFuture::waitForFinished
is a blocked call without an event loop. It freezes all kind of callback functions that depending on the event loop in the current thread. Therefore, the subscribe callback will never be invoked. Instead, you may use another implementation of waitForFInished
like this one:
template <typename T>
inline void await(QFuture<T> future, int timeout = -1) {
if (future.isFinished()) {
return;
}
QFutureWatcher<T> watcher;
watcher.setFuture(future);
QEventLoop loop;
if (timeout > 0) {
QTimer::singleShot(timeout, &loop, &QEventLoop::quit);
}
QObject::connect(&watcher, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
}
from asyncfuture.
Related Issues (20)
- QFuture (aka a DeferredFuture) return from asyncfuture isn't threadsafe and causes crashes HOT 2
- Missing documentation on building testcases HOT 1
- Creating a completed Deferred is very heavy HOT 1
- Unable to create a AsyncFuture::Deferred<QList<T>> HOT 6
- Context QObject should take const-pointer HOT 5
- Add support for onResultReadyAt HOT 1
- Crash when using .context() where the contexObject thread is different HOT 1
- Allow progress watching is work threads
- Combiner should honor child progress HOT 1
- Observable().subscribe(...).future() aka DeferredFuture should forward progress on chained pipeline HOT 1
- Remove/Update deprecated Qt functions from testcases HOT 1
- Combined() should forward cancel() to child futures HOT 1
- Combined operator<<() isn't thread safe if used outside main thread HOT 7
- How does one error a AsyncFuture::Deferred? HOT 1
- Add `contextObject` to function `subscribe` HOT 1
- Cancel not propagated to child future when previous future already finished HOT 3
- 'Any' combiner for futures HOT 1
- QT Creator can't find TestRunner QtQuickTest Automator, whare are they from? HOT 5
- how to update widget in main ui from future work? HOT 3
- Port asyncfuture to use Qt 6.3 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asyncfuture.