[visionegg] LPT things not being garbage collected

Hi!

Another one here, although this one is a bit trickier.

Daq.Channel.__init__ creates a reference loop. In the line self.constant_parameters.functionality.channel = self, we end up with an LPTOutput object that refers to the Daq.Channel, which refers to the LPTOutput. Normally, the garbage collector has no problem with loops like that, unless an object in the loop has a __del__ method, which the LPTOutput class does.

Is there a reason for that loop like that? I don't want to just comment it out in case there's a reason somewhere for it. The way I have things set up right now, these objects are created at the beginning of each stimulus presentation, and it slowly leaks memory.

I'm just curious for some input about where this should be fixed. I'm reluctant to add a __del__ method to the Channel class as well, but that might be necessary.

Cheers,

Tony
======================================
The Vision Egg mailing list
Archives: http://www.freelists.org/archives/visionegg
Website: http://www.visionegg.org/mailinglist.html

Other related posts: