[Twisted-Python] twisted and threading
Christopher Armstrong
radeex at gmail.com
Tue Aug 17 22:02:03 MDT 2004
On Tue, 17 Aug 2004 23:18:59 -0400, Jp Calderone <exarkun at divmod.com> wrote:
> twisted-10152003 at atlas.lcs.mit.edu wrote:
> > 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?).
> >
>
> There is no portable way to terminate a thread without its
> assistance. Python supports no API for this - save one, the
> ridiculously named "setDaemon" Thread method. Twisted doesn't expose
> this, nor call it internally, as it can lead to segfaults.
>
> Perhaps this should be parameterizable (defaulting to the current
> behavior, of course), so that poorly behaved libraries can be dealt with?
>
> Alternatively, since daemonized threads might lead to this anyway,
> perhaps you should just add a shutdown event os.kill(os.getpid(), 9)
> <wwinkink>.
Well, since he only wants to murder the thread at shutdown, a regular
"thread killing" API isn't necessary, just a way to have the thread
not block shutting down, by dying. Your os.kill suggestion is along
the lines of what I was thinking of, except maybe there's a less
horrible option :)
--
Twisted | Christopher Armstrong: International Man of Twistery
Radix | Release Manager, Twisted Project
---------+ http://radix.twistedmatrix.com
More information about the Twisted-Python
mailing list