summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authoranatoly techtonik <techtonik@gmail.com>2012-12-19 19:41:31 (GMT)
committeranatoly techtonik <techtonik@gmail.com>2012-12-19 19:41:31 (GMT)
commite7b9e30c3f5e4b80c4506bb0eb2fe5847c2ac2f8 (patch)
tree5b53542690a04881550fcfe095358d5ccc12602f /src/engine
parent30da57759fda031e95552e6b90fefa4252f90cad (diff)
downloadSCons-e7b9e30c3f5e4b80c4506bb0eb2fe5847c2ac2f8.zip
SCons-e7b9e30c3f5e4b80c4506bb0eb2fe5847c2ac2f8.tar.gz
SCons-e7b9e30c3f5e4b80c4506bb0eb2fe5847c2ac2f8.tar.bz2
Cleanup replacement of sys.exitfunc with atexit (Python 2+)
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/cppTests.py3
-rw-r--r--src/engine/SCons/exitfuncs.py19
2 files changed, 5 insertions, 17 deletions
diff --git a/src/engine/SCons/cppTests.py b/src/engine/SCons/cppTests.py
index bfb0b46..2f2025b 100644
--- a/src/engine/SCons/cppTests.py
+++ b/src/engine/SCons/cppTests.py
@@ -23,6 +23,7 @@
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+import atexit
import sys
import unittest
@@ -608,7 +609,7 @@ def _clean():
if os.path.exists(dir):
shutil.rmtree(dir)
-sys.exitfunc = _clean
+atexit.register(_clean)
class fileTestCase(unittest.TestCase):
cpp_class = cpp.DumbPreProcessor
diff --git a/src/engine/SCons/exitfuncs.py b/src/engine/SCons/exitfuncs.py
index 250dd54..7d00df7 100644
--- a/src/engine/SCons/exitfuncs.py
+++ b/src/engine/SCons/exitfuncs.py
@@ -30,6 +30,7 @@ Register functions which are executed when SCons exits for any reason.
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+import atexit
_exithandlers = []
def _run_exitfuncs():
@@ -52,23 +53,9 @@ def register(func, *targs, **kargs):
"""
_exithandlers.append((func, targs, kargs))
-import sys
-try:
- x = sys.exitfunc
-
- # if x isn't our own exit func executive, assume it's another
- # registered exit function - append it to our list...
- if x != _run_exitfuncs:
- register(x)
-
-except AttributeError:
- pass
-
-# make our exit function get run by python when it exits:
-sys.exitfunc = _run_exitfuncs
-
-del sys
+# make our exit function get run by python when it exits
+atexit.register(_run_exitfuncs)
# Local Variables:
# tab-width:4