[PD-dev] [ pure-data-Bugs-2974702 ] tcpserver: couldn't create sender thread

SourceForge.net noreply at sourceforge.net
Wed Mar 24 20:16:45 CET 2010

Bugs item #2974702, was opened at 2010-03-22 13:28
Message generated for change (Comment added) made by mrpeach
You can respond by visiting: 

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: externals
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: IOhannes m zmlnig (zmoelnig)
Assigned to: Martin Peach (mrpeach)
Summary: tcpserver: couldn't create sender thread

Initial Comment:
i'm currently testing [tcpserver] under more or less heavy loads, and find it slightly unreliable.

broadcasting a lot of messages will eventually stop sending.
tcpserver will output an error like "tcpserver: couldn't create sender thread (11)" and that's it.

test scenario: 5048 bytes messages (osc stream), banged every 10ms
after 435 successfull broadcasts, things stop; pstree shows 325 open pd threads
quiting Pd will not free the port (but that might be due to the hung tcpclient )

trying the same thing again, will roughly yield the same results (448 successfull broadcasts; 382 hung threads; tcpclient hung again)

PS: this all happens on a debian squeeze/sid machine (2.6.32-3-686) with a dual core processor and 2GB of ram)

PPS: this might be a duplicate of #2905508


>Comment By: Martin Peach (mrpeach)
Date: 2010-03-24 15:16

testpatch3.pd shows how tcpserver restarts after being blocked. On my
machine (dual P4, 2.4GHz, WinXP, Pd version 0.42.5-extended-20100324) I
can't get the metro below 120ms without blocking, but with todays' version
of [tcpserver] sending restarts properly once the [unblock( message is


Comment By: IOhannes m zmlnig (zmoelnig)
Date: 2010-03-24 05:42

hmm, don't know what you mean with the problem shutting down tcpserver...

in this case, tcpserver spawns threads and doesn't close them anymore.

i think the problem is the consumer: if the consumer is too slow (e.g.
[tcpclient] on localhost) then the problem will appear (more reliable)
if the consumer is fast (eg. netcat on localhost), then the tcpserver
seems to work fine.

however, tcpserver should never stop working, regardless of the speed of
the consumer (i'm involved in a project with really low bandwidth; a
hanging Pd is no option there)

why can't i attach a patch at the same time as writing a comment?


Comment By: Martin Peach (mrpeach)
Date: 2010-03-23 12:38

I think I fixed the problem with shutting down tcpserver, tcpserver_free()
was not checking for null pointers, so some clients were not disconnected
as Pd segfaulted before they could be serviced.
I don't see anything in [tcpserver] that would result in hundreds of hung
threads. Can you post a patch that does that?


Comment By: IOhannes m zmlnig (zmoelnig)
Date: 2010-03-22 13:33

btw, networking is done to localhost


You can respond by visiting: 

More information about the Pd-dev mailing list