On Jan 23, 2012, at 12:41 AM, Mathieu Bouchard wrote:

> Le 2012-01-22 à 21:16:00, Miller Puckette a écrit :
> 
>> Quick guess; the socket itself (at the OS level) has a fixed buffer size
>> and if the sending process exceeds it it is suspended until the receiving
>> process eats at least some of it.
> 
> AFAIK, that's 4k or 8k for «unix» type (pipe or fs socket) and it might be 
> 32k for TCP sockets. But code must not rely on specific buffer sizes.

>>> If you remove the [info complete] bracket from pd_readsocket, there are 
>>> these intermittent Tcl stacktraces causes by messages from 'pd' to 'pd-gui' 
>>> that get split in the wrong spot.
> 
> yes, [info complete] is a potential major slowdown because it may reparse 
> code many times while the amount of code increases. It's a n² time order 
> thing.

The [info complete] loop had the advantage of actually fixing this problem. The 
problem wasn't so much just using [info complete] but the condition used to 
trigger the check.  What was happening was that Scope~ was sending some kind of 
blank lines a lot, and the "while {![info complete]}" looped fast over these 
blank lines trying to make Tcl code out of them, eating up a lot of CPU.  I 
figured I might as well try to solve the underlying problem rather than tacking 
on workaround on top of workaround.

.hc

----------------------------------------------------------------------------

I hate it when they say, "He gave his life for his country."  Nobody gives 
their life for anything.  We steal the lives of these kids.  -Admiral Gene 
LeRocque


_______________________________________________
Pd-dev mailing list
Pd-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev

Reply via email to