[Twisted-Python] Re: [Twisted-commits] Somehow the waker still messes up cfreactor, never installing waker for now

Glyph Lefkowitz glyph at twistedmatrix.com
Tue Nov 11 23:56:25 MST 2003


Bob Ippolito wrote:

> I don't know what the deal is, exactly, because it uses python sockets 
> internally and that works perfectly fine.  I believe that something 
> about the waker causes the run loop to think that it's always awake.  I 
> didn't feel like looking too far into it.  That said, Apple's 
> implementation of CFRunLoop does everything that the reactor does (and 
> then some), including thread waking and other thread communication 
> facilities.. so when I have more time I'll look into the cause and the 
> appropriate solution.    IIRC the only part of Twisted that uses threads 
> on its own is the DB stuff, anything else would probably be implemented 
> using more native means (nobody uses cfreactor for cross-platform 
> applications yet), so I don't see an immediate problem with ignoring the 
> waker.  I'd rather punish threaded (from what Twisted sees) applications 
> than make all applications really really slow and resource hungry.

If there are better thread communication facilities in the CFRunLoop, 
then make your reactor's call[From/In]Thread use them.  There's nothing 
intrinsically useful about the waker; it's an implementation detail of 
callFromThread which could be better done in another way.

However, "really slow" doesn't quite describe the problem.  A server 
which sends an event to a thread without a waker and then receives a 
callFromThread may never wake up, if there isn't more network activity 
happening.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 256 bytes
Desc: not available
URL: </pipermail/twisted-python/attachments/20031112/a43db6f5/attachment.sig>


More information about the Twisted-Python mailing list