Mantid
Loading...
Searching...
No Matches
ReleaseGlobalInterpreterLock.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
8
10
16 : m_tracefunc(nullptr), m_tracearg(nullptr), m_saved(nullptr) {
17 PyThreadState *curThreadState = PyThreadState_GET();
18 m_tracefunc = curThreadState->c_tracefunc;
19 m_tracearg = curThreadState->c_traceobj;
20 Py_XINCREF(m_tracearg);
21 PyEval_SetTrace(nullptr, nullptr);
22 m_saved = PyEval_SaveThread();
23}
24
29 PyEval_RestoreThread(m_saved);
30 PyEval_SetTrace(m_tracefunc, m_tracearg);
31 Py_XDECREF(m_tracearg);
32}
33
34} // namespace Mantid::PythonInterface