[Twisted-Python] The right way to change a global variable in a Twisted server?

Christopher Armstrong radix at twistedmatrix.com
Sun Jul 6 08:41:59 EDT 2008


On Sun, Jul 6, 2008 at 3:14 AM, happybrowndog <happybrowndog at hotmail.com> wrote:
> Is there a right way to change a global variable in a Twisted server (this
> one is using PerspectiveBroker)?  What I am trying to do is allow
> perspectivebroker clients to update a global variable on the twisted server
> without colliding, ie: a counter that increases by 1 each time a particular
> call is made to the Twisted server.  Each client has a pb.Avatar attempting
> to update that global variable counter through a method call on the class
> extended on pb.Avatar.  As the server is select-based, am I wrong to assume
> that only one client is executing pb.Avatar calls at a time?

That's correct. Twisted won't run your code in multiple threads at the
same time unless you explicitly ask it to with something like
reactor.callInThread. So updating shared state is safe.

-- 
Christopher Armstrong
International Man of Twistery
http://radix.twistedmatrix.com/
http://twistedmatrix.com/
http://canonical.com/




More information about the Twisted-Python mailing list