Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6f4e68d

Browse files
committed
#5962: clarify sys.exit() vs. threads.
1 parent a192828 commit 6f4e68d

2 files changed

Lines changed: 22 additions & 16 deletions

File tree

Doc/library/os.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1576,15 +1576,15 @@ to be ignored.
15761576

15771577
.. function:: _exit(n)
15781578

1579-
Exit to the system with status *n*, without calling cleanup handlers, flushing
1579+
Exit the process with status *n*, without calling cleanup handlers, flushing
15801580
stdio buffers, etc.
15811581

15821582
Availability: Unix, Windows.
15831583

15841584
.. note::
15851585

1586-
The standard way to exit is ``sys.exit(n)``. :func:`_exit` should normally only
1587-
be used in the child process after a :func:`fork`.
1586+
The standard way to exit is ``sys.exit(n)``. :func:`_exit` should
1587+
normally only be used in the child process after a :func:`fork`.
15881588

15891589
The following exit codes are defined and can be used with :func:`_exit`,
15901590
although they are not required. These are typically used for system programs

Doc/library/sys.rst

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -180,19 +180,25 @@ always available.
180180

181181
Exit from Python. This is implemented by raising the :exc:`SystemExit`
182182
exception, so cleanup actions specified by finally clauses of :keyword:`try`
183-
statements are honored, and it is possible to intercept the exit attempt at an
184-
outer level. The optional argument *arg* can be an integer giving the exit
185-
status (defaulting to zero), or another type of object. If it is an integer,
186-
zero is considered "successful termination" and any nonzero value is considered
187-
"abnormal termination" by shells and the like. Most systems require it to be in
188-
the range 0-127, and produce undefined results otherwise. Some systems have a
189-
convention for assigning specific meanings to specific exit codes, but these are
190-
generally underdeveloped; Unix programs generally use 2 for command line syntax
191-
errors and 1 for all other kind of errors. If another type of object is passed,
192-
``None`` is equivalent to passing zero, and any other object is printed to
193-
``sys.stderr`` and results in an exit code of 1. In particular,
194-
``sys.exit("some error message")`` is a quick way to exit a program when an
195-
error occurs.
183+
statements are honored, and it is possible to intercept the exit attempt at
184+
an outer level.
185+
186+
The optional argument *arg* can be an integer giving the exit status
187+
(defaulting to zero), or another type of object. If it is an integer, zero
188+
is considered "successful termination" and any nonzero value is considered
189+
"abnormal termination" by shells and the like. Most systems require it to be
190+
in the range 0-127, and produce undefined results otherwise. Some systems
191+
have a convention for assigning specific meanings to specific exit codes, but
192+
these are generally underdeveloped; Unix programs generally use 2 for command
193+
line syntax errors and 1 for all other kind of errors. If another type of
194+
object is passed, ``None`` is equivalent to passing zero, and any other
195+
object is printed to :data:`stderr` and results in an exit code of 1. In
196+
particular, ``sys.exit("some error message")`` is a quick way to exit a
197+
program when an error occurs.
198+
199+
Since :func:`exit` ultimately "only" raises an exception, it will only exit
200+
the process when called from the main thread, and the exception is not
201+
intercepted.
196202

197203

198204
.. data:: flags

0 commit comments

Comments
 (0)