mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	The MemoryError freelist was not thread-safe in the free threaded build. Use a mutex to protect accesses to the freelist. Unlike other freelists, the MemoryError freelist is not performance sensitive.
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			900 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			900 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef Py_INTERNAL_EXCEPTIONS_H
 | 
						|
#define Py_INTERNAL_EXCEPTIONS_H
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef Py_BUILD_CORE
 | 
						|
#  error "this header requires Py_BUILD_CORE define"
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
/* runtime lifecycle */
 | 
						|
 | 
						|
extern PyStatus _PyExc_InitState(PyInterpreterState *);
 | 
						|
extern PyStatus _PyExc_InitGlobalObjects(PyInterpreterState *);
 | 
						|
extern int _PyExc_InitTypes(PyInterpreterState *);
 | 
						|
extern void _PyExc_Fini(PyInterpreterState *);
 | 
						|
 | 
						|
 | 
						|
/* other API */
 | 
						|
 | 
						|
struct _Py_exc_state {
 | 
						|
    // The dict mapping from errno codes to OSError subclasses
 | 
						|
    PyObject *errnomap;
 | 
						|
    PyBaseExceptionObject *memerrors_freelist;
 | 
						|
    int memerrors_numfree;
 | 
						|
#ifdef Py_GIL_DISABLED
 | 
						|
    PyMutex memerrors_lock;
 | 
						|
#endif
 | 
						|
    // The ExceptionGroup type
 | 
						|
    PyObject *PyExc_ExceptionGroup;
 | 
						|
};
 | 
						|
 | 
						|
extern void _PyExc_ClearExceptionGroupType(PyInterpreterState *);
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
#endif /* !Py_INTERNAL_EXCEPTIONS_H */
 |