[Twisted-Python] twisted and threading
twisted-10152003 at atlas.lcs.mit.edu
twisted-10152003 at atlas.lcs.mit.edu
Tue Aug 17 22:18:51 EDT 2004
Christopher Armstrong [radeex at gmail.com] wrote:
>On Tue, 17 Aug 2004 20:34:44 -0400, twisted-10152003 at atlas.lcs.mit.edu
><twisted-10152003 at atlas.lcs.mit.edu> wrote:
>> I wrapped a c library using swig and was hoping to make use of it in
>> a twisted server I am writing. The issue is that the c library
>> fundamentally blocks waiting for input that may never come. Is
>> there a way from twisted to deal with this cleanly within the
>> framework?
>>
>> I.e. some combination of adding a reactor.addSystemEventTrigger event
>> and calling reactor.threadpool.stop seem like it should work but
>> I haven't had any luck yet.
>
>
>Try twisted.internet.threads.deferToThread(myBlockingCall) -->
>Deferred.
Ah, but that doesn't work. As I stated the c library (not mine) calls
potentially block forever (or at least longer than I want to wait to
shutdown the twisted server). The thread created by deferTothread may
never complete which makes shutting down the server gracefully
impossible (or so I thought?).
>Geeze, where'd you come up with that stuff? Accessing
>reactor.threadpool directly is Really Bad. I hope there's no example
>code or documentation that refers to that.
:) Ah the hazards of attempting to read documentation and mailing-lists
before posting...
The threadpool and a link to its interface are mentioned on the primary
threading howto. No mention of "Really Bad" there.
http://www.twistedmatrix.com/documents/current/howto/threading
And other posts about threading on this mailing list mentioned
looking at twisted.enterprise.adbapi which is where
reactor.addSystemEventTrigger ideas came from.
Incidentally, I am happy to help update documentation if I can
figure out the right ways to do things. :)
Thanks for your rapid response.
Sincerely,
Steve Bauer
More information about the Twisted-Python
mailing list