def testMany( self ) :

		class S( IECore.V3f ) :

			instances = 0

			def __init__( self, parent ) :

				IECore.V3f.__init__( self )

				S.instances += 1

				self.children = []
				self.numConnections = 0
				self.signal = Gaffer.Signal1()
				if parent :
					self.c = parent.signal.connect( self.f )
					parent.numConnections += 1
					parent.children.append( self )

			def f( self, a ) :

				r = 1
				if self.numConnections!=0 :
					r += self.signal( a )

				return r

		def build( parent, depth=0 ) :

			if( depth > 15 ) :
				return
			else :
				s1 = S( parent )
				s2 = S( parent )
				build( s1, depth + 1 )
				build( s2, depth + 1 )

		s = S( None )
		build( s )

		s.signal( 1 )

	## Check that Exceptions being thrown in callbacks don't cause additional references
	# to be created which would stop or delay collection. This tests a bug whereby the use
	# of PyErr_Print caused tracebacks to be stored in sys.last_traceback, which meant that
	# references to the T instance below were kept until another exception was thrown.
dataset/ETHPy150Open ImageEngine/gaffer/python/GafferTest/SignalsTest.py/SignalsTest.testMany/original