qa: make closure of NEOCluster more reliable in treaded tests
Instances of NEOCluster were not deleted as soon as the only referrers were weak proxies (at least that's what a quick check with the 'gc' module showed at the beginning of tearDown). In some cases, __del__ was called while the next test was logging a message, which led to deadlocks. Without those proxies, it may be reliable, but only on CPython. See http://doc.pypy.org/en/latest/cpython_differences.html#differences-related-to-garbage-collection-strategies Relying on __del__ to close a cluster was wrong. NEOCluster is now a context manager that does it explicitly at exit, in addition to automatically stop it. The NEOCluster.stop method combines the previous stop/__del__/reset methods. A new 'with_cluster' decorator is also added to avoid excessive indentation in tests. Unindentation of existing tests will be done later.
Showing
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment