14 #define PyEval_CallObject(func,arg) \
15 PyEval_CallObjectWithKeywords(func, arg, (PyObject *)NULL)
19 PyAPI_FUNC(PyObject *) PyEval_CallMethod(PyObject *obj,
21 const
char *format, ...);
24 PyAPI_FUNC(
void) PyEval_SetTrace(Py_tracefunc, PyObject *);
28 PyAPI_FUNC(PyObject *) PyEval_GetBuiltins(
void);
29 PyAPI_FUNC(PyObject *) PyEval_GetGlobals(
void);
31 PyAPI_FUNC(struct _frame *) PyEval_GetFrame(
void);
48 #define Py_EnterRecursiveCall(where) \
49 (_Py_MakeRecCheck(PyThreadState_GET()->recursion_depth) && \
50 _Py_CheckRecursiveCall(where))
51 #define Py_LeaveRecursiveCall() \
52 (--PyThreadState_GET()->recursion_depth)
56 # define _Py_MakeRecCheck(x) (++(x) > --_Py_CheckRecursionLimit)
58 # define _Py_MakeRecCheck(x) (++(x) > _Py_CheckRecursionLimit)
61 PyAPI_FUNC(
const char *) PyEval_GetFuncName(PyObject *);
62 PyAPI_FUNC(const
char *) PyEval_GetFuncDesc(PyObject *);
64 PyAPI_FUNC(PyObject *) PyEval_GetCallStats(PyObject *);
65 PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _frame *);
122 PyAPI_FUNC(
int) PyEval_ThreadsInitialized(
void);
126 PyAPI_FUNC(
void) PyEval_AcquireThread(PyThreadState *tstate);
127 PyAPI_FUNC(
void) PyEval_ReleaseThread(PyThreadState *tstate);
130 #define Py_BEGIN_ALLOW_THREADS { \
131 PyThreadState *_save; \
132 _save = PyEval_SaveThread();
133 #define Py_BLOCK_THREADS PyEval_RestoreThread(_save);
134 #define Py_UNBLOCK_THREADS _save = PyEval_SaveThread();
135 #define Py_END_ALLOW_THREADS PyEval_RestoreThread(_save); \
140 #define Py_BEGIN_ALLOW_THREADS {
141 #define Py_BLOCK_THREADS
142 #define Py_UNBLOCK_THREADS
143 #define Py_END_ALLOW_THREADS }