>>> ----- Original Message ---- >>> From: Amos Anderson <nitroa...@gmail.com> >>> To: Development of Python/C++ integration <cplusplus-sig@python.org> >>> Sent: Wed, February 3, 2010 12:24:13 PM >>> Subject: [C++-sig] how do i interrupt a C++ extension? >>> >>> Hello -- >>> >>> I've got a python script with C++ extensions. Some of my extensions >>> take a long time to complete, and I don't want to wait for them to >>> finish when I'm debugging stuff. However, when I do Ctrl-C in my >>> terminal, it's completely ignored. So it looks like python is trapping >>> the signal, but apparently can't do anything with it until the >>> extension returns control to the python script. I guess ideally, >>> Ctrl-C would kill the extension and return control to python, >>> generating an exception, but I'd also be ok if Ctrl-C killed the >>> python script too. >>> >>> I've been googling around, but can't figure out how this seemingly >>> simple (and desired) task is accomplished. Anybody know how to do it? >>> Right now, the only solution is Ctrl-Z and kill %1 so I guess that >>> works for now... >>> >>> thanks! >>> >>> Amos.
Thanks for all the suggestions, but I just figured out how to do what I want, and I figured I'd share it with everybody. This was my coworker's idea. I just wrap my extension in a separate Process, which can then be killed by the original process as needed. For example: from multiprocessing import Process ... p = Process(target=minimizeStructure, args=(filename,)) p.start() try: p.join() except: p.terminate() print "Error: early termination." and this does exactly what I need. Amos. _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig