
7 Aug
2007
7 Aug
'07
9:22 p.m.
On 8/7/07, Yan Zhu nayuhz@gmail.com wrote:
Hi all, I run a reactor in my thread, so I will get many connection by twisted, and I run another thread for write back data to any connection.
You don't need to have multiple threads to communicate with multiple connections!
But I've found the data is in buffer, not sent back immediately.
This is because you're calling Twisted functions from non-reactor threads. Twisted doesn't support this. The *only* threadsafe function to call is reactor.callFromThread. You pass it a function to run in the reactor thread.
If all you need is concurrent asynchronous I/O, you don't need threads. Twisted is an *asynchronous* networking framework. You can do all of your communication efficiently in one thread.
--
Christopher Armstrong
International Man of Twistery
http://radix.twistedmatrix.com/
http://twistedmatrix.com/
http://canonical.com/