[PD-dev] [ pure-data-Bugs-2905508 ] mrpeach/tcpserver: stops sending after X messages

SourceForge.net noreply at sourceforge.net
Sun Nov 29 07:03:35 CET 2009


Bugs item #2905508, was opened at 2009-11-28 19:20
Message generated for change (Comment added) made by mrpeach
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=2905508&group_id=55736

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: Roman Haefeli (reduzent)
Assigned to: Martin Peach (mrpeach)
Summary: mrpeach/tcpserver: stops sending after X messages

Initial Comment:
After sending 380 messages to one or more clients, [tcpserver] stops sending any more messages. Though TCP is stream-oriented, the number of (pd) messages sent [tcpserver] is significant and not the number of transmitted bytes.

Attached is a patch, that illustrates the problem.

BTW: the new threaded version is ~15 times faster than the old select() based. It looks very promising. 

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

>Comment By: Martin Peach (mrpeach)
Date: 2009-11-29 01:03

Message:
The threads are supposed to terminate themselves after they have sent their
buffer. I don't see a need to use threads apart from sending messages. The
rest of [tcpserver] works just fine in one thread.

Here on WinXP the patch is still running at 66000+.
The system is adding handles at about twice the rate as the threads are
being created, but the amount of available memory is not decreasing and the
number of threads is staying about the same.
I'm not sure if that's a bug.


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

Comment By: Roman Haefeli (reduzent)
Date: 2009-11-28 19:30

Message:
Hm.. from the svn log of revision 12760: "Using pthreads to send each
message to each client in its own thread." That probably explains, why it
stops working after sending X times 'broadcast 97 59 10' to [tcpserver]. Do
i understand right, that literally each pd message opens its own <number of
clients> threads? Wouldn't it be sufficient to have one thread per socket?
 

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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=2905508&group_id=55736




More information about the Pd-dev mailing list