diff --git a/src/python/pyrte.c b/src/python/pyrte.c index ec5f995acf0314ffa4ba319a95adce59f1a1e0bd_c3JjL3B5dGhvbi9weXJ0ZS5j..6a246a729e127489973c1740d877202c4cd7d0b9_c3JjL3B5dGhvbi9weXJ0ZS5j 100755 --- a/src/python/pyrte.c +++ b/src/python/pyrte.c @@ -274,6 +274,9 @@ VERSION HISTORY (update SOFTWAREVN as well!) --------------- +17-MAY-2010 JFP v1.1.7, add missing Py_Finalize() in ProcessCachingRte() + PyErr_Occurred is a borrowed reference - remove + erroneous calls to Py_DECREF 30-APR-2010 JFP v1.1.6, WsgiSendResponse(), headers were send too early in some cases 29-APR-2010 MGD v1.1.5, PYRTE_HEAD_CVT_GET and script=param=PYRTE=/HEAD=GET @@ -291,7 +294,7 @@ /*****************************************************************************/ #define SOFTWARECR "Copyright (C) 2007-2010 Mark G.Daniel" -#define SOFTWAREVN "1.1.6" +#define SOFTWAREVN "1.1.7" #define SOFTWARENM "PYRTE" #ifdef __ALPHA # define SOFTWAREID SOFTWARENM " AXP-" SOFTWAREVN @@ -894,7 +897,6 @@ if (pError = PyErr_Occurred()) { ReportError (__LINE__, 0, 1, NULL); - Py_DECREF (pError); free (ccptr->FileNamePtr); ccptr->FileNamePtr = NULL; } @@ -1269,7 +1271,6 @@ if (pError = PyErr_Occurred()) { ReportError (__LINE__, 0, 1, NULL); - Py_DECREF (pError); free (ccptr->FileNamePtr); ccptr->FileNamePtr = NULL; } @@ -1315,6 +1316,8 @@ if (UsageLimit && UsageCount > UsageLimit) break; } + + Py_Finalize(); } /*****************************************************************************/ diff --git a/src/python/readmore.html b/src/python/readmore.html index ec5f995acf0314ffa4ba319a95adce59f1a1e0bd_c3JjL3B5dGhvbi9yZWFkbW9yZS5odG1s..6a246a729e127489973c1740d877202c4cd7d0b9_c3JjL3B5dGhvbi9yZWFkbW9yZS5odG1s 100755 --- a/src/python/readmore.html +++ b/src/python/readmore.html @@ -60,7 +60,7 @@ <CENTER> <H1>Python Run-Time Environment</H1> -<H3>Version 1.1.6, 1st May 2010</H3> +<H3>Version 1.1.7, 4th June 2010</H3> <P><B>Copyright © 2007-2010 Mark G. Daniel</B> <BR>This program, comes with ABSOLUTELY NO WARRANTY. @@ -167,7 +167,7 @@ </A> <P> Although there are experimentation modes built into PyRTE basically it will be -used as a WASD Run-Time Environment providing persisten Python interpreter(s) +used as a WASD Run-Time Environment providing persistent Python interpreter(s) and environment(s) for Python scripts and applications. Benchmarking indicates the CGIplus/RTE use reduces activation time to 3% of CGI (yes, that's correct, by a factor 35 - a python interpreter is quite expensive to instantiate). diff --git a/src/python/scripts/pyrte_test2.py b/src/python/scripts/pyrte_test2.py index ec5f995acf0314ffa4ba319a95adce59f1a1e0bd_c3JjL3B5dGhvbi9zY3JpcHRzL3B5cnRlX3Rlc3QyLnB5..6a246a729e127489973c1740d877202c4cd7d0b9_c3JjL3B5dGhvbi9zY3JpcHRzL3B5cnRlX3Rlc3QyLnB5 100755 --- a/src/python/scripts/pyrte_test2.py +++ b/src/python/scripts/pyrte_test2.py @@ -64,4 +64,4 @@ while wasd.cgiplus_begin(True): CGIorCGIplus() - wasd.reuse_interpreter(True) +### wasd.reuse_interpreter(True)