mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 18:28:49 +00:00 
			
		
		
		
	 b7808820b1
			
		
	
	
		b7808820b1
		
			
		
	
	
	
	
		
			
			No longer export _PyCompile_AstOptimize() internal C API function. Change comment style to "// comment" and add comment explaining why other functions have to be exported.
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #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 void _PyGen_Finalize(PyObject *self);
 | |
| 
 | |
| // Export for '_asyncio' shared extension
 | |
| PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *);
 | |
| 
 | |
| // Export for '_asyncio' shared extension
 | |
| PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
 | |
| 
 | |
| extern PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
 | |
| extern PyObject *_PyAsyncGenValueWrapperNew(PyThreadState *state, PyObject *);
 | |
| 
 | |
| extern PyTypeObject _PyCoroWrapper_Type;
 | |
| extern PyTypeObject _PyAsyncGenWrappedValue_Type;
 | |
| extern PyTypeObject _PyAsyncGenAThrow_Type;
 | |
| 
 | |
| /* 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 */
 |