mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	Py_Initialize()/Py_Finalize() loop leaks. - allow an optional 3rd argument which is the loop count. -1 means infloop (the default). - Add a setting of Py_NoSiteFlag=1, but leave it commented out by default.
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			665 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			665 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* Simple program that repeatedly calls Py_Initialize(), does something, and
 | 
						|
   then calls Py_Finalize().  This should help finding leaks related to
 | 
						|
   initialization. */
 | 
						|
 | 
						|
#include "Python.h"
 | 
						|
 | 
						|
main(int argc, char **argv)
 | 
						|
{
 | 
						|
	int count = -1;
 | 
						|
	char *command;
 | 
						|
 | 
						|
	if (argc < 2 || argc > 3) {
 | 
						|
		fprintf(stderr, "usage: loop <python-command> [count]\n");
 | 
						|
		exit(2);
 | 
						|
	}
 | 
						|
	command = argv[1];
 | 
						|
 | 
						|
	if (argc == 3) {
 | 
						|
		count = atoi(argv[2]);
 | 
						|
	}
 | 
						|
 | 
						|
	Py_SetProgramName(argv[0]);
 | 
						|
 | 
						|
	/* uncomment this if you don't want to load site.py */
 | 
						|
	/* Py_NoSiteFlag = 1; */
 | 
						|
 | 
						|
	while (count == -1 || --count >= 0 ) {
 | 
						|
		Py_Initialize();
 | 
						|
		PyRun_SimpleString(command);
 | 
						|
		Py_Finalize();
 | 
						|
	}
 | 
						|
	return 0;
 | 
						|
}
 |