ifm / nexxT

Hybrid python/c++ framework for developing computer vision algorithms and more.
Apache License 2.0
6 stars 1 forks source link

Issue33 #34

Closed cwiede closed 3 years ago

cwiede commented 3 years ago

This PR reverts the changes in https://github.com/ifm/nexxT/pull/30, which was having undesired side effects. Instead of fixing the deadlocking use case (which turned out to be pretty difficult) nexxT now detects cycles in the thread graph and refuses to start these configurations.

Therefore, configurations working with nexxT <= 0.6.0 might not work anymore for higher versions. If such a situation occurs, it might be enough to change the filter's thread assignments. If this is not possible (because GUI threads might be involved), a redesign of some specific filters might be necessary.

Moreover, the change also reduces the latency introduced by inter-thread connections by reducing the number of samples allowed to be buffered in the QT event loop, such that the test case introduced for issue #33 passes.

cwiede commented 3 years ago

reverts the changes from https://github.com/ifm/nexxT/pull/30 and refuse to start configurations with possible deadlocks instead