You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perf: release the Python GIL around heavy TTTR/CLSM/Correlator calls
Add a reusable, exception-safe TTTRLIB_NOGIL SWIG macro (RAII
tttrlib_gil_release guard wrapping $action, preserving the project's
std::exception -> Python translation) and apply it to the heavy,
Python-object-free entry points:
- TTTR file loading: read_file, read_records, read_hdf_file,
read_sm_file, and the reading constructors
- CLSMImage::fill and the filling constructor
- Correlator::run
These run with the GIL released so other Python threads progress while a
file loads or an image fills (both OpenMP-parallelized internally);
results are only returned once the operation completes. numpy typemaps
marshal under the GIL before/after $action, so only the pure C++ core
executes GIL-free. Pda::evaluate is deliberately excluded because its
director callback would re-enter Python without the GIL.
0 commit comments