[Twisted-Python] Perspective Broker and thread safe!

Ed Suominen general at eepatents.com
Fri Feb 6 19:54:59 MST 2009


This sort of thing is exactly what I wrote AsynCluster to do. See 
http://foss.eepatents.com/AsynCluster.

Best regards, Ed

B. B. wrote:
> Hello, I am relative new to twisted, though I have manage to make a 
> simple client server solution ( using perspective broker ) that I am now 
> try to refactor a little.
> 
> The solution is now something like :
> 
> Using perspective broker, clients connects to the server ( setting up a 
> remote reference to each other ).
> Via a PB call, each client can request the server do some processing. 
> The result of  the processing is distributed to each connected client - 
> and the client asking for the request gets a simple status report!
> 
> This solution works quite well, the only bottleneck is that all the 
> "thread-safe" processing on the server is done in the mainloop of the 
> server reactor. I want to do concurrent processing on the server!
> 
> The function doing the processing on the server, also distribute the 
> result to all the connected clients, and returns the result to the 
> klient asking for the request.
> 
> My question is : 
> If I just "defer" that function "toThread" ( like  
> threads.deferToThread( myServerProcessingFunction ) ). Do I have 
> potential problems, when several threads try to distribute its result to 
> the connecting clients??? 
> 
> 
> If I have a problem:
> Can I make a quick fix as follows:  Within each thread ( started with 
> the threads.deferToThread function ), I do the distributing to the 
> clients by using the "reactor.callFromThread"
> ( like reactor.callFromThread( distributeToAllClient , myResult ) where 
> the function distributeToAllClient are using the remoteReference for 
> each client to send the "myResult" )
> 
> 
> Or is the only solution, to let the myServerProcessingFunction returns 
> the "myResult" to be distributed to all connected clients, and do the 
> distribution in the reactor mainthread???
> 
> 
> Thank you!
> 
> 
> Brian
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 
> 




More information about the Twisted-Python mailing list