AlkantarClanX12
Current Path : /proc/thread-self/root/opt/alt/python312/include/python3.12/internal/ |
Current File : //proc/thread-self/root/opt/alt/python312/include/python3.12/internal/pycore_genobject.h |
#ifndef Py_INTERNAL_GENOBJECT_H #define Py_INTERNAL_GENOBJECT_H #ifdef __cplusplus extern "C" { #endif #ifndef Py_BUILD_CORE # error "this header requires Py_BUILD_CORE define" #endif extern PyObject *_PyGen_yf(PyGenObject *); extern PyObject *_PyCoro_GetAwaitableIter(PyObject *o); extern PyObject *_PyAsyncGenValueWrapperNew(PyThreadState *state, PyObject *); /* runtime lifecycle */ extern void _PyAsyncGen_Fini(PyInterpreterState *); /* other API */ #ifndef WITH_FREELISTS // without freelists # define _PyAsyncGen_MAXFREELIST 0 #endif #ifndef _PyAsyncGen_MAXFREELIST # define _PyAsyncGen_MAXFREELIST 80 #endif struct _Py_async_gen_state { #if _PyAsyncGen_MAXFREELIST > 0 /* Freelists boost performance 6-10%; they also reduce memory fragmentation, as _PyAsyncGenWrappedValue and PyAsyncGenASend are short-living objects that are instantiated for every __anext__() call. */ struct _PyAsyncGenWrappedValue* value_freelist[_PyAsyncGen_MAXFREELIST]; int value_numfree; struct PyAsyncGenASend* asend_freelist[_PyAsyncGen_MAXFREELIST]; int asend_numfree; #endif }; #ifdef __cplusplus } #endif #endif /* !Py_INTERNAL_GENOBJECT_H */