I&#39;m really happy to see this conversation.<br><br><div class="gmail_quote">On Fri, Jan 27, 2012 at 7:45 AM, Charles Henry <span dir="ltr">&lt;<a href="mailto:czhenry@gmail.com">czhenry@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, Jan 25, 2012 at 5:32 PM, Peter Brinkmann<br>
&lt;<a href="mailto:peter.brinkmann@googlemail.com">peter.brinkmann@googlemail.com</a>&gt; wrote:<br>
<br>
&gt; I don&#39;t think users have anything to gain from fine-grained control of<br>
&gt; threads.  That seems like an optimization hint that may or may not be<br>
&gt; helpful, depending on a lot of factors that are not obvious and will differ<br>
&gt; from machine to machine.  In any case, I don&#39;t want to have to think about<br>
&gt; threads when patching any more than I want to think about, say, NEON<br>
&gt; optimizations.<br>
<br>
</div>I&#39;m still making the case here:<br>
Suppose you&#39;re writing a patch and you run up against the limitations<br>
of a single-threaded process.  Then, you take some portion in a<br>
sub-patch and drop in a &quot;thread~&quot; object.  You&#39;re able to selectively<br>
add the functionality where it matters to you *and* only when you<br>
actually need it.<br>
<br></blockquote><div><br></div><div>Isn&#39;t this problem addressed with the [pd~] object?  It runs it&#39;s patches in it&#39;s own process instead of thread and I&#39;m not sure why, but it will do what your describing, no?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The generalizable case is much more preferrable, I agree, but as you<br>
say further on, you might develop an application that incurs<br>
significant overhead--and may not be appropriate for all applications.<br>
<br></blockquote><div><br></div><div>I see the next important step as making the general cases easier to handle.  A per-thread context such as IOhannes and Peter describe above seems like the best approach to allowing a program to run multiple instances of pd in a much more predictable manner, while it still allows for backwards compatibility (via a default &#39;legacy&#39; context).  I see parallel processing as a different topic, although it will be easier to implement once the static variables are taken care of.</div>
</div>