[PEAK] peak events tasks...
John Landahl
john at landahl.org
Wed Jul 7 16:35:38 EDT 2004
On Wednesday 07 July 2004 09:36 am, darryl wrote:
> Does anyone have example code or publicly visible projects which use
> peak events etc. especially with respect to twisted support?
I used peak.events pretty extensively with Twisted while developing the
PEAK-based app at my previous job. The code to that application was supposed
to be open-sourced at some point, but unfortunately that's looking pretty
unlikely at this point.
I'm more than happy to share my experiences with peak.events "in the field",
though. Perhaps I can come up with a draft tutorial and you can let me know
if it answers your questions.
There are at least two major problems I encountered with Twisted and
peak.events, however. One is due to the fact that Twisted's reactors are
singletons meant to be started up and shutdown once. This makes it
impossible to use a peak.events "event loop" for "synchronizing" a call to a
Twisted asynchronous routine. This is needed when using Twisted behind the
scenes within an otherwise synchronous framework such as peak.storage (e.g.
when writing a DM which uses Perspective Broker as a way to move data between
a middle and client tier in an n-tier application).
The other problem is that Twisted reactors don't allow (direct) calls from
secondary threads, which makes it difficult to use another thread as a way of
getting around the first problem. One must write code to use
reactor.callFromThread, which may not even work for all use cases.
Note that these are limitations with Twisted caused by its insistence on
purely asynchronous applications. Without some improvements on the Twisted
side, there's only so much peak.events can do to provide a (seemingly)
synchronous layer above Twisted's reactors.
Anyway, we can chat about peak.events on #peak any time you like.
More information about the PEAK
mailing list