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 <javascript:>> > 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.