On Thu, Jun 30, 2016 at 2:12 PM, Steven D'Aprano <st...@pearwood.info> wrote: > On Thu, 30 Jun 2016 11:28 am, Chris Angelico wrote: > >> On Thu, Jun 30, 2016 at 10:27 AM, Steven D'Aprano <st...@pearwood.info> >> wrote: >>> Following os.abort(), the interpreter exits in the hardest, quickest >>> manner possible. >> >> os.kill(os.getpid(), 9) >> >> Now THAT is the hardest way to abort. You ain't comin' back from this one! > > The docs say it will abort in the hardest way possible, by dumping core or > equivalent. I *think* I recall seeing os.abort() actually segfault at some > point, but I can't replicate that now. > > I tried to find the actual implementation of os.abort(), but I couldn't work > out where it was or what it does. Can somebody enlighten me?
My expectation is that it'd be something like this: def abort(): if sys.platform == 'windows': some_win32_api_call() signal.signal(signal.SIGABRT, signal.SIG_DFL) kill(getpid(), signal.SIGABRT) Certainly, after a call to os.abort() under Linux, the process is recorded as having terminated with signal 6 (SIGABRT), and the intended purpose of that signal is "abort the process abnormally, possibly dumping core". ChrisA -- https://mail.python.org/mailman/listinfo/python-list