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 <t...@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.

Reply via email to