Comments (4)
I did a quick search about the current status of sanitize_thread support in QT binary. I doubt its support due to this issue:
[QTBUG-37402] QMutex not recognized by thread sanitizer - Qt Bug Tracker
https://bugreports.qt.io/browse/QTBUG-37402
According to the last comment, even the patched version of Qt still report race condition.
I have tested with Qt 5.10 and it also reports race in calling future.result()
which should be a thread-safe function. I am not sure if the result really meaningful.
from asyncfuture.
SUMMARY: ThreadSanitizer: data race qfuture.h:157 in QFuture<int>::result() const
If QFuture::result()
could not pass the test, AsyncFuture won't pass for sure. I may test with Qt 5.11 later.
from asyncfuture.
Strange enough, future.result
uses QFutureInterface<T>::resultReference
which uses QMutex
, and with patch mentioned in QTBUG-37402 mutex should have been annotated.
You build patched version of Qt with -fsanitize=thread
under what OS/compiler?
from asyncfuture.
It is a undocumented feature. sanitizer could be enabled via qmake by
CONFIG += sanitizer sanitize_thread
I don't know how Qt handle it . But I am not going to build my own version of Qt to test it as it is very time consuming.
from asyncfuture.
Related Issues (20)
- 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
- Any plans to upgrade asyncfuture to support Qt6? HOT 2
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.