-
-
Notifications
You must be signed in to change notification settings - Fork 42
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
QML thread affinity check is missing #83
Comments
@omix also qrc:/ links stopped working with latest jambi build that I made, could you please check if they work for you? In the IDE mode, where all files are added to classpath from build folder |
I can clearly say, that the issue you reported is not caused by QtJambi but by Qt. In general, threaded changing of models is possible. There is no affinity check because it is allowed to edit the table in another thread. The thread sends change notification via signals and these are sent in the owner thread of the receivers. I verified this by using a widget-based table view:
Works well. |
We also have a similar looking crash for webengineview in qml, happens not every time when you change webapp contents fast. perhaps it's releated |
It seems, QtJambi does not load from directory. I'll fix it next version.
|
Reopening because of response in https://bugreports.qt.io/browse/QTBUG-107598 |
@omix I think QT guy is right, look at qt beginInsertRows implemntation: However, once you use HeaderView, it makes it's proxyModel to listen to all signals of the main model: |
Methods |
I come to the conclusion that simply making |
I changed my paradigm and added thread-affinity to model's begin and end methods. They are now affine to the model's thread. It is still possible to prepare tables in different threads as long as the thread owns the table. Finally when bringing into view, the threaded table has to be moved to UI thread. The change will be avaibale with QtJambi version 6.5.0. |
Describe the bug
Thread affinity check is not done for qml in setip that I will provide in an example below:
https://github.com/mchistovib/brokenQMLThreadAffinity
In example, just attach some jjambi jars and QT lib and click on "add rows other thread" button
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Since jambi thread affinity checks are enabled, we expect a nice java exception being thrown, like in other places where we got these thread affinity issues.
System (please complete the following information):
The text was updated successfully, but these errors were encountered: