I'm not sure it's possible to kill a thread in Python that's in the middle of a C function. I know you can't do it with signals, for example. Or can you? I'm on Windows and signals isn't fully implemented.
I had to do just this, btw, so I wrote another Python program that communicates with the main one over a socket and then if it misbehaves I can kill it using an OS command because it's a process and there's an OS command for killing processes, and then I'd restart it. The problem is that, sometimes the OS kill command would work, sometimes it wouldn't, and I never did figure what makes the difference. "Roger Heathcote" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hello everyone, this is my first post so hello & please be gentle! > > Despite many peoples insistence that allowing for the arbitrary killing of > threads is a cardinal sin and although I have no particular threading > problem to crack right now I remain interest in the taboo that is thread > killing. The real world and it's data are messy and imperfect and I can > think of several scenarios where it could be useful to be able to bump off > a naughty thread, especially when using/testing unstable 3rd party modules > and other code that is an unknown quantity. > > With this in mind I am experimenting with a set of threading subclasses > that would permit timeouts and the manual killing of threads. I'm trying > to evaluate how robust such a scheme can be made and what the limitations > would be in practice. > > So far I can seemingly murder/timeout pure python threads that are stuck > blocking for input and stuck in infinite loops but I'm guessing there are > many more awkward cases. What I'm looking for are examples of code/modules > that can get stuck in dead ends or might otherwise be problematic to > terminate. > > In particular I'd be interested to see if I could kill a non-returning c > module. Of course naturally no one wants to be publishing buggy modules > and the like so I am having trouble finding examples of misbehaving c code > to explore further. I figure I could learn how to write c modules for > python but, while it's something I'd like to know someday, I'm guessing > that will be too long to fit into the immediate future :/ Consequently if > anyone has detailed knowledge of what is and isn't fundamentally possible > in the world of thread culling, or if you can point me to some > gnarly/non-returning thread code to test with I would be forever grateful. > > Oh yes, I'm working primarily with 2.5 on XP however I have access to > linux & OSX boxen and I'd be interested to learn about problematic thread > code for either of those platforms as well. > > Thanks for reading, > > Roger Heathcote - www.technicalbloke.com -- http://mail.python.org/mailman/listinfo/python-list