##// END OF EJS Templates
Speedup builtin_trap enter/exit by reducing object creation....
Speedup builtin_trap enter/exit by reducing object creation. Most of the work that was being done on *every* enter/exit cycle could be done statically only once, at object creation time. This trap is used on every single code execution, so we need it to be fast. In the long run we probably want to rethink this system altogether, but for now at least we want it fast.

File last commit:

r2494:c8938204
r2957:ec9984dc
Show More
tclass.py
31 lines | 848 B | text/x-python | PythonLexer
"""Simple script to be run *twice*, to check reference counting bugs.
See test_run for details."""
import sys
# We want to ensure that while objects remain available for immediate access,
# objects from *previous* runs of the same script get collected, to avoid
# accumulating massive amounts of old references.
class C(object):
def __init__(self,name):
self.name = name
def __del__(self):
print 'tclass.py: deleting object:',self.name
sys.stdout.flush()
try:
name = sys.argv[1]
except IndexError:
pass
else:
if name.startswith('C'):
c = C(name)
#print >> sys.stderr, "ARGV:", sys.argv # dbg
# This next print statement is NOT debugging, we're making the check on a
# completely separate process so we verify by capturing stdout:
print 'ARGV 1-:', sys.argv[1:]
sys.stdout.flush()