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.
main(int argc, char **argv)
{
+ int count = -1;
char *command;
- if (argc != 2) {
- fprintf(stderr, "usage: loop <python-command>\n");
+ 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]);
- while (1) {
+ /* 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();
}
- /*NOTREACHED*/
+ return 0;
}