[PD-dev] deadly leak

Ivica Ico Bukvic ico at vt.edu
Wed Dec 14 18:49:56 CET 2011



Mathieu Bouchard <matju at artengine.ca> wrote:

>Le 2011-12-14 à 10:15:00, Ivica Ico Bukvic a écrit :
>
>> So, the only way I can ensure in pd-l2ork that this never happens is 
>> that I enable global variable in canvas_new making sure that pd_new 
>> function is aware its next allocation is for a canvas. I also
>maintain a 
>> global single-linked list of previously allocated memory locations of
>
>> canvases and check that the newly created canvas does not reuse old 
>> memory location.
>
>In DesireData, I had a concept called «zombies» that was quite similar
>to 
>that. It would postpone deallocation of objects until it knew that the 
>client (tcl/tk) would not confuse the dead object with the newer
>object. 
>During that time, the object is destructed (the freemethod was called)
>but 
>freebytes isn't called yet, and the class of the object is changed to 
>ensure that every message received is reported as an error and doesn't 
>crash.
>
>But it doesn't look like the duplicate messages are at all related to
>that 
>kind of problem/solution. It looks like just a bug of forgetting to
>call 
>pd_unbind in one place. Any such bug that also exists in pd-vanilla is 
>unrelated to zombie-style solutions, as far as I can think of the
>problem.
>

So what part of the code specifically binds keyboard and mouse actions to a canvas? I thought this was never explicitly bound but is rather a result of tcl/tk simply reporting events within a specific canvas whose name was given to it by its memory allocation. Otherwise, which pd_bind does that?

FWIW canvas_free calls pd_unbind and it does indeed unbind things, although without knowing where the original bind relevant to this problem occurs, I have no way of telling wehether those unbinds have anything to do with it.

Ivica Ico Bukvic, D.M.A
Composition, Music Technology
Director, DISIS Interactive Sound & Intermedia Studio
Director, L2Ork Linux Laptop Orchestra
Assistant Director, CCTAD
Virginia Tech
Department of Music
Blacksburg, VA 24061-0240
(540) 231-6139
(540) 231-5034 (fax)
disis.music.vt.edu
l2ork.music.vt.edu
ico.bukvic.net



More information about the Pd-dev mailing list