[Twisted-Python] Re: [Twisted-commits] r13446 - After a lengthy discussion, revert to previous threaded behavior wrt registering as the IO thread
James Y Knight
foom at fuhm.net
Sun Apr 3 11:31:08 MDT 2005
On Apr 3, 2005, at 1:58 AM, Jp Calderone wrote:
> After a lengthy discussion, revert to previous threaded behavior wrt
> registering as the IO thread
> Modified: trunk/twisted/internet/posixbase.py
> =======================================================================
> =======
> --- trunk/twisted/internet/posixbase.py (original)
> +++ trunk/twisted/internet/posixbase.py Sat Apr 2 23:58:11 2005
> @@ -155,7 +155,6 @@
> ReactorBase.__init__(self)
> if self.usingThreads or platformType == "posix":
> self.installWaker()
> - threadable.whenThreaded(threadable.registerAsIOThread)
>
> def _handleSignals(self):
> """Install the signal handlers for the Twisted event loop."""
You **do** realize this means isInIOThread always returns false after
threading is enabled, if the reactor was started before threading was
enabled, right?
Something like the following should be run in the test suite. It has to
be in a separate process, though, to ensure it's in the incorrect
state, so something needs to be done about passing in the reactor to
run, also.
from twisted.python import threadable
from twisted.internet import reactor
def testIsInIOThread():
print "1)", threadable.isInIOThread()
threadable.init(1)
print "2)", threadable.isInIOThread()
reactor.crash()
reactor.callWhenRunning(testIsInIOThread)
reactor.run()
> @@ -202,10 +201,6 @@
> self.startRunning(installSignalHandlers=installSignalHandlers)
> self.mainLoop()
>
> - def iterate(self, delay=0):
> - threadable.registerAsIOThread()
> - ReactorBase.iterate(self, delay)
> -
> def mainLoop(self):
> while self.running:
> try:
iterate() is the external API, I think it, like startRunning, should
also ensure the thread it's being called on is marked as the IO thread.
James
More information about the Twisted-Python
mailing list