[Twisted-Python] IPushProducer - medium volume streaming
Benjamin.Rutt at gs.com
Mon Oct 29 13:10:15 EDT 2007
Thanks Chris and Phil. My mistake for writing
the latter which I'm actually using.
Also I fixed to use write() not writeSomeData(), thanks.
Regarding state, I take it each new client connection to my server
results in a new instance of my LineReceiver subclass. So therefore the
self.transport object contains the TCP socket fd in there somewhere -
makes sense, thanks.
From: twisted-python-bounces at twistedmatrix.com
[mailto:twisted-python-bounces at twistedmatrix.com] On Behalf Of
Sent: Monday, October 29, 2007 10:57 AM
To: Twisted general discussion
Subject: Re: [Twisted-Python] IPushProducer - medium volume streaming
On 10/29/07, Rutt, Benjamin <Benjamin.Rutt at gs.com> wrote:
> I'm still puzzled how exactly
> 'reactor.callFromThread(self.transport.writeSomeData(...))' gets
> to the right client when called from my function. How does twisted
> which client that message is going to? After all, it calls it from
> main reactor loop. i.e. what state does it use to get this right?
"self.transport" is associated with the particular connection.
Also, there are a couple of other things wrong about your snippet:
1. use "write", not "writeSomeData". writeSomeData is an internal
2. You're actually calling writeSomeData and passing the *result* of
that to callFromThread. That's wrong; you need to pass a callable and
its arguments to callFromThread. So instead of
reactor.callFromThread(foo(a, b)), you write
reactor.callFromThread(foo, a, b). That means you should ultimately be
International Man of Twistery
Twisted-Python mailing list
Twisted-Python at twistedmatrix.com
More information about the Twisted-Python