| 
									
										
										
										
											2024-01-10 08:04:41 +09:00
										 |  |  | #include "Python.h"
 | 
					
						
							| 
									
										
										
										
											2024-07-22 12:08:27 -04:00
										 |  |  | #include "pycore_freelist.h"   // _PyObject_ClearFreeLists()
 | 
					
						
							| 
									
										
										
										
											2024-01-10 08:04:41 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifndef Py_GIL_DISABLED
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Clear all free lists
 | 
					
						
							|  |  |  |  * All free lists are cleared during the collection of the highest generation. | 
					
						
							|  |  |  |  * Allocated items in the free list may keep a pymalloc arena occupied. | 
					
						
							|  |  |  |  * Clearing the free lists may give back memory to the OS earlier. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | void | 
					
						
							|  |  |  | _PyGC_ClearAllFreeLists(PyInterpreterState *interp) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2024-02-14 09:32:51 +09:00
										 |  |  |     _PyObject_ClearFreeLists(&interp->object_state.freelists, 0); | 
					
						
							| 
									
										
										
										
											2024-01-10 08:04:41 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |