[Twisted-Python] Shared resource manioulation example
Karl Anderson
kra at monkey.org
Fri May 28 15:38:29 EDT 2010
On Fri, May 28, 2010 at 12:10 PM, <vitaly at synapticvision.com> wrote:
>
> Of course its up to me to determine if it's a data collision or not,
> but I was thinking may be Twisted can provide me with some already
> existing mechanism of its own. After all its already a pretty massive
> and complicated framework with tons of capabilities ...
>
> But I'd like to get back to the point of the question: if at some
> point EventA callbacks and EventB callbacks need to work on the same
> global variable, than what would be a Twisted way (if exist) to
> prevent data collision ?
In the way that you have described it, that's a question for your
code. In the general case, you don't know what order callbacks on two
chains will be called in.
The advantage of async is that you can use a standard Python type as a
mutex, and relinquish control if it's not ready. Set a variable when
one chain is working, and if another chain encounters that, have it
try later by creating and retuning a new Deferred with its work on
that callback, or with reactor.callLater().
More information about the Twisted-Python
mailing list