cpython/Include/internal/pycore_ceval_state.h

#ifndef Py_INTERNAL_CEVAL_STATE_H
#define Py_INTERNAL_CEVAL_STATE_H
#ifdef __cplusplus
extern "C" {
#endif

#ifndef Py_BUILD_CORE
#  error "this header requires Py_BUILD_CORE define"
#endif

#include "pycore_lock.h"            // PyMutex
#include "pycore_gil.h"             // struct _gil_runtime_state


_Py_pending_call_func;

struct _pending_call {};

#define PENDINGCALLSARRAYSIZE

#define MAXPENDINGCALLS
/* For interpreter-level pending calls, we want to avoid spending too
   much time on pending calls in any one thread, so we apply a limit. */
#if MAXPENDINGCALLS > 100
#define MAXPENDINGCALLSLOOP
#else
#define MAXPENDINGCALLSLOOP
#endif

/* We keep the number small to preserve as much compatibility
   as possible with earlier versions. */
#define MAXPENDINGCALLS_MAIN
/* For the main thread, we want to make sure all pending calls are
   run at once, for the sake of prompt signal handling.  This is
   unlikely to cause any problems since there should be very few
   pending calls for the main thread. */
#define MAXPENDINGCALLSLOOP_MAIN

struct _pending_calls {};


perf_status_t;

#ifdef PY_HAVE_PERF_TRAMPOLINE
struct code_arena_st;

struct trampoline_api_st {};
#endif


struct _ceval_runtime_state {};


#ifdef PY_HAVE_PERF_TRAMPOLINE
#define _PyEval_RUNTIME_PERF_INIT
#else
#define _PyEval_RUNTIME_PERF_INIT
#endif


struct _ceval_state {};


#ifdef __cplusplus
}
#endif
#endif /* !Py_INTERNAL_CEVAL_STATE_H */