From 38b82543f7f38d7e23586e6773e0e114d335f22d Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Fri, 15 Feb 2013 21:27:18 +0100 Subject: [PATCH] Issue #17208: add a note about the termination behaviour of daemon threads. --- Doc/library/threading.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst index 4a012116871..e30f0e354da 100644 --- a/Doc/library/threading.rst +++ b/Doc/library/threading.rst @@ -244,6 +244,12 @@ is that the entire Python program exits when only daemon threads are left. The initial value is inherited from the creating thread. The flag can be set through the :attr:`~Thread.daemon` property. +.. note:: + Daemon threads are abruptly stopped at shutdown. Their resources (such + as open files, database transactions, etc.) may not be released properly. + If you want your threads to stop gracefully, make them non-daemonic and + use a suitable signalling mechanism such as an :class:`Event`. + There is a "main thread" object; this corresponds to the initial thread of control in the Python program. It is not a daemon thread.