# 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.
