<html><head></head><body>In that case, the patch I attached in my previous email should take care of it with practically no added overhead.<br>
<br>
Best wishes,<br>
<br>
Ico<br>
<br>
Ivica Ico Bukvic, D.M.A<br>
Composition, Music Technology<br>
Director, DISIS Interactive Sound &amp; Intermedia Studio<br>
Director, L2Ork Linux Laptop Orchestra<br>
Assistant Director, CCTAD<br>
Virginia Tech<br>
Department of Music<br>
Blacksburg, VA 24061-0240<br>
(540) 231-6139<br>
(540) 231-5034 (fax)<br>
<a href="http://disis.music.vt.edu">disis.music.vt.edu</a><br>
<a href="http://l2ork.music.vt.edu">l2ork.music.vt.edu</a><br>
<a href="http://ico.bukvic.net">ico.bukvic.net</a><br><br><div class="gmail_quote">Miller Puckette &lt;msp@ucsd.edu&gt; wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre style="white-space: pre-wrap; word-wrap:break-word; font-family: sans-serif">I haven't looked at this in detail yet.  I don't think there are any worries<br />as to teh caveat at the bottim since as far as I know Pd does nothing<br />asynchronously except for read/writesf~.<br /><br />cheers<br />Miller<br />On Tue, May 29, 2012 at 07:09:28PM -0400, Ivica Ico Bukvic wrote:<br />&gt; Has anyone bothered testing this? It works fine over here as far as I can<br />&gt; see. Also, Miller, I would greatly appreciate your insight on the potential<br />&gt; caveat described below. Namely, is it possible for Pd to execute multiple<br />&gt; paths asynchronously (e.g. one part of the graph is executing something and<br />&gt; at the same time there is a bang button pressed via GUI--in this situation<br />&gt; does the bang trigger second, asynchronous process or is this scheduled<br />&gt; after the previous graph call has completed its navigation?)?<br />&gt; <br />&gt; NB: patc!
 h might
require a bit of fuzzy factor since it is based off of the<br />&gt; pd-l2ork code base that is slightly different from the vanilla/extended.<br />&gt; <br />&gt; Ico<br />&gt; <br />&gt; &gt; -----Original Message-----<br />&gt; &gt; From: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] On Behalf Of<br />&gt; &gt; Ivica Ico Bukvic<br />&gt; &gt; Sent: Monday, May 28, 2012 1:08 AM<br />&gt; &gt; To: Claude Heiland-Allen<br />&gt; &gt; Cc: pd-list@iem.at<br />&gt; &gt; Subject: Re: [PD] variable receive objects?<br />&gt; &gt; <br />&gt; &gt; On 05/28/2012 12:10 AM, Ivica Ico Bukvic wrote:<br />&gt; &gt; &gt; Never mind. Just had a look at pd_bind/unbind code. This makes me<br />&gt; &gt; &gt; wonder what if all bindings/unbindings were handled as lists? Would<br />&gt; &gt; &gt; this potentially break anything (other than having to modify<br />&gt; &gt; &gt; bind/unbind mechanism)? Does anything else depend on 2-member list vs.<br />&gt; &gt; &gt; 1-member pointer in !
 terms of
bindings? I suspect there would be some<br />&gt; &gt; &gt; cpu impact on having it implemented this way, but not that much.<br />&gt; &gt; &gt;<br />&gt; &gt; Actually, please try attached patch. It fixes all such crashes for me on<br />&gt; pd-<br />&gt; &gt; l2ork. Basically it has a static variable set within m_pd.c that is turned<br />&gt; on only<br />&gt; &gt; when one of bindlist_&lt;var&gt;() functions is called in which case any<br />&gt; potential<br />&gt; &gt; memory deallocation calls within pd_unbind are deferred until all members<br />&gt; &gt; of bindlist-&gt;b_list have been served with data. After that<br />&gt; bindlist_cleanup<br />&gt; &gt; does its thing based on which members have e_who pointing to NULL and<br />&gt; &gt; that's that. In the event a call arrives outside those bindlist_&lt;var&gt;()<br />&gt; &gt; functions, it immediately deallocates stuff as is currently the case with<br />&gt; pd<br />&gt; &gt; vanilla and extended.<br />&gt; &gt; <!
 br
/>&gt; &gt; Potential caveat: if one somehow invokes an event outside regular<br />&gt; execution<br />&gt; &gt; of the code and it somehow arrives exactly during that narrow span of time<br />&gt; &gt; when the static var is enabled, its memory deallocation will be ignored. I<br />&gt; am<br />&gt; &gt; however unsure if this is theoretically even possible since my<br />&gt; understanding<br />&gt; &gt; is that the graph is never being executed out-of-sync. Please correct me<br />&gt; if I<br />&gt; &gt; am wrong.<br />&gt; &gt; <br />&gt; &gt; Cheers!<br />&gt; &gt; <br />&gt; &gt; --<br />&gt; &gt; Ivica Ico Bukvic, D.M.A<br />&gt; &gt; Composition, Music Technology<br />&gt; &gt; Director, DISIS Interactive Sound&amp;  Intermedia Studio Director, L2Ork<br />&gt; Linux<br />&gt; &gt; Laptop Orchestra Head, ICAT Integrative Performance Studio Virginia Tech<br />&gt; &gt; Department of Music Blacksburg, VA 24061-0240<br />&gt; &gt; (540) 231-6139<br />&gt; &gt; (540) 231-50!
 34
(fax)<br />&gt; &gt; <a href="http://disis.music.vt.edu">disis.music.vt.edu</a><br />&gt; &gt; <a href="http://l2ork.music.vt.edu">l2ork.music.vt.edu</a><br />&gt; &gt; <a href="http://ico.bukvic.net">ico.bukvic.net</a><br />&gt; <br />&gt; <br /></pre></blockquote></div></body></html>