diff options
author | Guido van Rossum <guido@python.org> | 1997-08-20 22:40:18 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-08-20 22:40:18 (GMT) |
commit | aa61505fd222fb15cc2507c8a2a44dcfce0c971f (patch) | |
tree | e1eee93373b3a56be0f5c6c4b102ba8709720107 /Python | |
parent | 558be283bf2c3a2c405c8a404da1cfed69900226 (diff) | |
download | cpython-aa61505fd222fb15cc2507c8a2a44dcfce0c971f.zip cpython-aa61505fd222fb15cc2507c8a2a44dcfce0c971f.tar.gz cpython-aa61505fd222fb15cc2507c8a2a44dcfce0c971f.tar.bz2 |
Use a counter instead of a Boolean to check for initialized; n calls
to Py_Initialize will be undone by n calls to Py_Uninitialize.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/pythonrun.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 4d64114..9f977f0 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -98,9 +98,8 @@ Py_Initialize() PyObject *bimod, *sysmod; char *p; - if (initialized) - Py_FatalError("Py_Initialize: already initialized"); - initialized = 1; + if (++initialized > 1) + return; if ((p = getenv("PYTHONDEBUG")) && *p != '\0') Py_DebugFlag = 1; @@ -166,9 +165,10 @@ Py_Finalize() call_sys_exitfunc(); - if (!initialized) + if (--initialized > 0) + return; + if (initialized < 0) Py_FatalError("Py_Finalize: not initialized"); - initialized = 0; tstate = PyThreadState_Get(); interp = tstate->interp; |