Sys.exit in secondary threads

Ned Deily nad at acm.org
Fri Oct 8 17:14:37 EDT 2010


In article 
<d841072f-5bad-4b2c-ba14-977b77645c2e at a15g2000yqm.googlegroups.com>,
 Pakal <chambon.pascal at gmail.com> wrote:
> I've noticed that there is nothing in python's documentation regarding
> the use of sys.exit(code) in a non-main thread.
> 
> As far as I've seen, the behaviour in this case is to simply exit the
> thread, without caring about the return code. in the main thread
> however, the return code becomes the official return code of the whole
> process.
> 
> Is that all we have to say about sys.exit() in a multithreaded
> program ? Or are there corner cases I've missed ? We'd better document
> this anyway.

There is this item among the Caveats for the _thread module in Py3 
(thread in Py2):

"Calling sys.exit() or raising the SystemExit exception is equivalent to 
calling _thread.exit()."

http://docs.python.org/py3k/library/_thread.html
http://docs.python.org/library/thread.html

It seems like it should be mentioned elsewhere, too, like in sys.exit() 
itself.  Doc patches would be welcomed, I'm sure.

-- 
 Ned Deily,
 nad at acm.org




More information about the Python-list mailing list