It is old code. And there is no __cinit__, only __init__ On Mon, 3 Dec 2018 15:56 Nils Bruin <nbr...@sfu.ca wrote:
> Is there something new in cython that makes __destruct__ a special method? > I thought __dealloc__ was the place to undo __cinit__ stuff. > > On Monday, December 3, 2018 at 7:29:14 AM UTC-8, Dima Pasechnik wrote: >> >> An expert in Cython/Python classes needed: __destruct__ is not called >> for a reason I don't understand. >> >> There is class Graph with a method convexity_properties >> >> which calls cdef'd class ConvexityProperties in a separate pyx file. >> A destructor for the latter is defined as >> def __destruct__ but is never called. What is going on? What is the >> correct design here? >> >> Dima >> >> >> ---------- Forwarded message --------- >> From: sage-trac <tr...@sagemath.org> >> Date: Mon, 3 Dec 2018 15:02 >> Subject: Re: [sage-trac] #26795: Some memory leaks >> To: >> >> >> #26795: Some memory leaks >> >> -------------------------------------+------------------------------------- >> Reporter: jmantysalo | Owner: >> Type: defect | Status: needs_work >> Priority: major | Milestone: sage-8.5 >> Component: memleak | Resolution: >> Keywords: | Merged in: >> Authors: Dima Pasechnik | Reviewers: >> Report Upstream: N/A | Work issues: >> Branch: | Commit: >> public/packages/glpkbackendmemleak | >> c42c3bc27da534544dc62a953d5457d6c27532b5 >> Dependencies: | Stopgaps: >> >> -------------------------------------+------------------------------------- >> >> Comment (by dimpase): >> >> Replying to [comment:21 jmantysalo]: >> > What's this: >> > >> > {{{ >> > import gc >> > >> > i = 0 >> > GG = graphs() >> > _ = next(GG); _ = next(GG); >> > for P in GG: >> > if i > 20000: break >> > if i % 1000 == 0: >> > _ = gc.collect() >> > print get_memory_usage(), P.order() >> > i += 1 >> > _ = P.convexity_properties() >> > }}} >> > >> > ??? There is an explicit `__destruct__` in class `ConvexityProperties`. >> >> however, `__destruct__` is not called, as one can see by putting a >> `print()` there. >> >> -- >> Ticket URL: <https://trac.sagemath.org/ticket/26795#comment:26> >> Sage <http://www.sagemath.org> >> Sage: Creating a Viable Open Source Alternative to Magma, Maple, >> Mathematica, and MATLAB >> > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.