Carl Banks wrote:
Arguing that there are good reasons to allow killing threads isn't
going to get you very far.  The language developers already know
killing a thread is useful, yet the disallowed it anyway.  The
drawbacks were judged too severe (it makes enforcing invariants pretty
much impossible).

   While outright thread cancellation is generally unsafe, it would
be useful if there was a way to force another thread to unblock from
a wait condition, like a blocking read, with an exception.  This is,
among other things, why control-C won't terminate some threaded programs.

   Python 2.6 and 3 have some steps in this direction.  There's
"signal.set_wakeup_fd(fd)", and "siginterrupt()". But the real
problem, that signals are associated only with the first thread, hasn't
been addressed.

   Question: if "signal.set_wakeup_fd(fd)" is used, and the thread
waiting on "fd" is not the main thread, will a signal cause the
waiting thread to get a read completion?  Or is this another "first
thread only" thing"?

                                John Nagle
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to