Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-23 Thread Tom Sheffler
Tobias and Itamar - Thanks for sharing the conversation and statistics. Very interesting! -Tom ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-23 Thread Tobias Oberstein
x.com [mailto:twisted-python-boun...@twistedmatrix.com] Im Auftrag von Tobias Oberstein Gesendet: Mittwoch, 23. Oktober 2013 00:58 An: Twisted discussion Betreff: Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets? Hi Itamar, once again Twisted surprises me: it just works! I have tested a

Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-22 Thread Tobias Oberstein
Hi Itamar, once again Twisted surprises me: it just works! I have tested a master/child combo over pipe (both Twisted) with a push producer on the sending leg. It can push around 70MB/s raw binary (16k write size) to the child. Load is evenly on 2 CPU cores each at 80% and stays roughly consta

Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-21 Thread Itamar Turner-Trauring
On 10/21/2013 04:48 PM, Tobias Oberstein wrote: Flow-control for Pipes / Unix Domains Sockets? Hi, with TCP (either remote or loopback) I can have flow-control using the producer-consumer machinery that Twisted provides. Is that (flow-control / producer-consumer) also available (and practica

Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-21 Thread Tobias Oberstein
fwiw, I have been trying to get find a conclusive answer to the subquestion: Do Unix domain sockets (either stream or dgram) support flow-control? The nearest I could find is http://stackoverflow.com/questions/1478975/unix-domain-socket-is-there-such-a-thing-as-a-busy-signal/1479022 but the comme

Re: [Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-21 Thread David Stainton
Hi, I don't know the answer to your question... I've been thinking about flow control lately. I recently wrote a little working prototype VPN in Twisted using IPushProducer and IConsumer interfaces but I have not yet implemented flow control : Here we can see how I proxy between TUN and UDP usin

[Twisted-Python] Flow-control for Pipes / Unix Domains Sockets?

2013-10-21 Thread Tobias Oberstein
Hi, with TCP (either remote or loopback) I can have flow-control using the producer-consumer machinery that Twisted provides. Is that (flow-control / producer-consumer) also available (and practically usable/recommended) with: a) Unix Domain sockets b) Pipes (spawnProcess) ? Thanks! /Tobias

Re: [Twisted-Python] Flow control

2011-08-11 Thread Tobias Oberstein
ahh, I felt I missed sth;) thx .. I'll look into that On 11.08.11 23:16, "Christopher Armstrong" wrote: On Thu, Aug 11, 2011 at 5:13 PM, Tobias Oberstein wrote: For a test driver for a TCP-based protocol (written in Twisted) I want to send data to a receiver as fast as the receiver can consu

Re: [Twisted-Python] Flow control

2011-08-11 Thread Itamar Turner-Trauring
> However, isn't there a simpler way (without application level flow > control)? > > In the end, the sender TCP stack must have knowledge of it's window size > .. > is there a way to get at that info? > > What is the recommended way? Transports provide the IConsumer interface, to which you can hoo

Re: [Twisted-Python] Flow control

2011-08-11 Thread Christopher Armstrong
On Thu, Aug 11, 2011 at 5:13 PM, Tobias Oberstein < tobias.oberst...@tavendo.de> wrote: > For a test driver for a TCP-based protocol (written in Twisted) I want to > send data to a > receiver as fast as the receiver can consume data, but not faster. > > Apparently, a naive loop which just does tr

[Twisted-Python] Flow control

2011-08-11 Thread Tobias Oberstein
For a test driver for a TCP-based protocol (written in Twisted) I want to send data to a receiver as fast as the receiver can consume data, but not faster. Apparently, a naive loop which just does transport.write() does not work. When I do reactor.select(0) between the writes, it somehow works,