5 Commits

Author SHA1 Message Date
Matthias Kuhn
02ec785e1b
Fix deadlock in geometry validation
Fix a deadlock in geometry validation. This happens when the mainthread "waits for finished" of a checker thread.

What happened in this case was, that the main thread canceled the feedback and waited for any jobs to finish.
If a job was waiting for a feature source (or something else to be executed on the main thread) this resulted in a mighty deadlock.

What we do here is that we regularly check if we ought to cancel while waiting for our slot on the main thread and can bail out if we should cancel before the main thread gets around to take care of our function.
The difference is, we still execute the code on the background thread and make sure that the main thread is not doing anything during this time to avoid working on the same data structures in parallel.
2018-10-29 15:05:51 +01:00
Matthias Kuhn
36e83f31c0
Tag geometry check classes as technology preview 2018-10-15 14:29:00 +02:00
Matthias Kuhn
6df73d6d07
QgsVectorLayerFeaturePool needs to be aware of geometry changes 2018-10-15 14:28:03 +02:00
Matthias Kuhn
4607930ece
Allow resolving errors 2018-10-15 14:27:59 +02:00
Matthias Kuhn
bee5470e10
Python bindings for QgsGeometryCheck and co
Adds

 - python bindings
 - geometry check factory
 - geometry check registry
 - QgsFeedback for geometry checks (lots of potential still)
 - An IsValid geometry check
 - Splits classes into their own files
 - Decouples feature pools from the configuration context
2018-09-28 13:33:24 +02:00