Add Hint to Improve Python Concurrency#
The new VTK_UNBLOCKTHREADS wrapper hint indicates methods for which we
want to release the GIL and allow Python thread concurrency. In particular,
we want to hint the Update() methods so that they can run concurrently
from different Python threads, and more importantly, so that the Python
interpreter itself is not blocked while these methods are executing.
This hint tells the wrappers to call PyEval_SaveThread() before the hinted
C++ method is called, and to call PyEval_RestoreThread() afterwards. In
order for VTK_UNBLOCKTHREADS to take effect, VTK_PYTHON_FULL_THREADSAFE
must be ON when VTK is configured with cmake, since that configuration
option ensures that the GIL is properly managed.