Dong-hee Na
36d9e9a4d5
bpo-35283: Update the docstring of threading.Thread.join method (GH-11596)
2019-01-18 10:50:47 +01:00
Dong-hee Na
89669ffe10
bpo-35283: Add deprecation warning for Thread.isAlive (GH-11454)
...
Add a deprecated warning for the threading.Thread.isAlive() method.
2019-01-17 13:14:45 +01:00
Skip Montanaro
5634331a76
bpo-33556: Remove reference to thread module from docstring (GH-6963)
2018-05-18 13:38:36 -05:00
Antoine Pitrou
1023dbbcb7
bpo-31516: current_thread() should not return a dummy thread at shutdown ( #3673 )
...
bpo-31516: current_thread() should not return a dummy thread at shutdown
2017-10-02 16:42:15 +02:00
Antoine Pitrou
a6a4dc816d
bpo-31370: Remove support for threads-less builds ( #3385 )
...
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Antoine Pitrou
ee84a60858
bpo-18966: non-daemonic threads created by a multiprocessing.Process should be joined on exit ( #3111 )
...
* bpo-18966: non-daemonic threads created by a multiprocessing.Process should be joined on exit
* Add NEWS blurb
2017-08-16 20:53:28 +02:00
Gregory P. Smith
163468a766
bpo-16500: Don't use string constants for os.register_at_fork() behavior ( #1834 )
...
Instead use keyword only arguments to os.register_at_fork for each of the scenarios.
Updates the documentation for clarity.
2017-05-29 10:03:41 -07:00
Antoine Pitrou
4a8bcdf79c
bpo-16500: Use register_at_fork() in the threading module ( #1843 )
...
* bpo-16500: Use register_at_fork() in the threading module
* Update comment at top of _after_fork()
2017-05-28 14:02:26 +02:00
Antoine Pitrou
f7ecfac0c1
Doc nits for bpo-16500 ( #1841 )
...
* Doc nits for bpo-16500
* Fix more references
2017-05-28 11:35:14 +02:00
Serhiy Storchaka
aefa7ebf0f
bpo-6532: Make the thread id an unsigned integer. ( #781 )
...
* bpo-6532: Make the thread id an unsigned integer.
From C API side the type of results of PyThread_start_new_thread() and
PyThread_get_thread_ident(), the id parameter of
PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState
changed from "long" to "unsigned long".
* Restore a check in thread_get_ident().
2017-03-23 14:48:39 +01:00
Xiang Zhang
f3a9faba4b
bpo-29376: Fix assertion error in threading._DummyThread.is_alive() (GH-236)
2017-02-27 11:01:30 +08:00
Martin Panter
02b75abf73
Merge spelling and grammar fixes from 3.5
2016-08-05 01:51:39 +00:00
Martin Panter
69332c1a64
Fix spelling and grammar in documentation and code comments
2016-08-04 13:07:31 +00:00
Martin Panter
3e04d5b306
Issue #27076 : Merge spelling from 3.5
2016-05-26 06:03:19 +00:00
Martin Panter
46f50726a0
Issue #27076 : Doc, comment and tests spelling fixes
...
Most fixes to Doc/ and Lib/ directories by Ville Skyttä.
2016-05-26 05:35:26 +00:00
Zachary Ware
e7041fa215
Closes #26987 : Merge with 3.5
2016-05-09 14:50:36 -05:00
Zachary Ware
78b5ed98d8
Issue #26987 : Correct implementation to match comment
...
This was inadvertently changed in 644b677c2ae5 to use self._stderr
instead of _sys.stderr.
2016-05-09 14:49:31 -05:00
Martin Panter
19e69c5a20
Issue #23883 : Add missing APIs to __all__; patch by Jacek Kołodziej
2015-11-14 12:46:42 +00:00
Benjamin Peterson
062f4cec5e
merge 3.4 ( #25362 )
2015-10-10 19:36:40 -07:00
Benjamin Peterson
414918a939
use the with statement for locking the internal condition ( closes #25362 )
...
Patch by Nir Soffer.
2015-10-10 19:34:46 -07:00
Benjamin Peterson
72181b2f53
merge 3.4 ( #25319 )
2015-10-05 22:00:33 -07:00
Benjamin Peterson
15982aad2b
reinitialize an Event's Condition with a regular lock ( closes #25319 )
2015-10-05 21:56:22 -07:00
R David Murray
f5387c0d6d
Merge: #11866 : Eliminate race condition in the computation of names for new threads.
2014-10-04 17:45:15 -04:00
R David Murray
b186f1df41
#11866 : Eliminate race condition in the computation of names for new threads.
...
Original patch by Peter Saveliev.
2014-10-04 17:43:54 -04:00
Serhiy Storchaka
c904e87c13
Issue #22423 : Unhandled exception in thread no longer causes unhandled
...
AttributeError when sys.stderr is None.
2014-09-21 22:09:20 +03:00
Serhiy Storchaka
52005c2e13
Issue #22423 : Unhandled exception in thread no longer causes unhandled
...
AttributeError when sys.stderr is None.
2014-09-21 22:08:13 +03:00
Victor Stinner
ae58649721
Issue #22043 : time.monotonic() is now always available
...
threading.Lock.acquire(), threading.RLock.acquire() and socket operations now
use a monotonic clock, instead of the system clock, when a timeout is used.
2014-09-02 23:18:25 +02:00
Antoine Pitrou
fa9211b11d
Issue #22185 : Fix an occasional RuntimeError in threading.Condition.wait() caused by mutation of the waiters queue without holding the lock.
...
Patch by Doug Zongker.
2014-08-29 23:27:33 +02:00
Antoine Pitrou
a64b92edd3
Issue #22185 : Fix an occasional RuntimeError in threading.Condition.wait() caused by mutation of the waiters queue without holding the lock.
...
Patch by Doug Zongker.
2014-08-29 23:26:36 +02:00
Raymond Hettinger
62f4dad816
Issue 21137: Better repr for threading.Lock()
2014-05-25 18:22:35 -07:00
Victor Stinner
7fa767e517
Issue #20976 : pyflakes: Remove unused imports
2014-03-20 09:16:38 +01:00
Antoine Pitrou
1095907624
Remove stray semicolon
2014-03-17 18:22:41 +01:00
Tim Peters
a577f1e0f1
Changed a comment to end grammar bikeshedding ;-)
2013-10-26 11:56:16 -05:00
Tim Peters
7bad39f174
Fiddled Thread.join() to be a little simpler. Kinda ;-)
2013-10-25 22:33:52 -05:00
Tim Peters
e5bb0bf04d
Issue #19399 : fix sporadic test_subprocess failure.
...
Change Thread.join() with a negative timeout to just return. The
behavior isn't documented then, but this restores previous
behavior.
2013-10-25 20:46:51 -05:00
Georg Brandl
bb2ed516cc
merge with 3.3
2013-10-13 10:44:04 +02:00
Georg Brandl
c30b59fe3d
Closes #17375 : port new threading docstrings from 2.7.
2013-10-13 10:43:59 +02:00
Tim Peters
e99bdb9694
Issue 19158: a rare race in BoundedSemaphore could allow .release() too often.
2013-10-08 21:12:58 -05:00
Tim Peters
7634e1cf90
Issue 19158: a rare race in BoundedSemaphore could allow .release() too often.
2013-10-08 20:55:51 -05:00
Tim Peters
72460fa68b
Get "stopped" back into repr(Thread) when appropriate.
...
Due to recent changes, a Thread doesn't know that it's over before
someone calls .join() or .is_alive(). That meant repr(Thread)
continued to include "started" (and not "stopped") before one of
those methods was called, even if hours passed since the thread
ended.
Repaired that.
2013-09-09 18:48:24 -05:00
Tim Peters
b5e9ac9ec6
Another stab at the thread cleanup patch.
...
Antoine Pitrou found a variation that worked for him on the
thread+fork tests, and added an important
self._is_stopped = True
to the after-fork code. I confess I don't know why things passed
before. But then mixing fork with threads is insane ;-)
2013-09-09 14:41:50 -05:00
Tim Peters
7875523f16
Backed out changeset 1f5a7853680c
...
Unixy buildbots were failing the thread + fork tests :-(
2013-09-09 13:47:16 -05:00
Tim Peters
7a6054b19d
Minor cleanup of the new scheme for detecting thread termination.
...
Documented some obscurities, and assert'ed ._stop()'s crucial precondition.
2013-09-09 12:57:10 -05:00
Tim Peters
c363a23eff
Issue 18984: Remove ._stopped Event from Thread internals.
...
The fix for issue 18808 left us checking two things to be sure a Thread
was done: an Event (._stopped) and a mutex (._tstate_lock). Clumsy &
brittle. This patch removes the Event, leaving just a happy lock :-)
The bulk of the patch removes two excruciating tests, which were
verifying sanity of the internals of the ._stopped Event after a fork.
Thanks to Antoine Pitrou for verifying that's the only real value
these tests had.
One consequence of moving from an Event to a mutex: waiters (threads
calling Thread.join()) used to block each on their own unique mutex
(internal to the ._stopped event), but now all contend on the same
mutex (._tstate_lock). These approaches have different performance
characteristics on different platforms. I don't think it matters in
this context.
2013-09-08 18:44:40 -05:00
Antoine Pitrou
5da7e7959e
Issue #18808 again: fix the after-fork logic for not-yet-started or already-stopped threads.
...
(AFAICT, in theory, we must reset all the locks, not just those in use)
2013-09-08 13:19:06 +02:00
Tim Peters
68d7f78703
Issue 18808: blind attempt to repair some buildbot failures.
...
test_is_alive_after_fork is failing on some old Linux kernels, but
passing on all newer ones. Since virtually anything can go wrong
with locks when mixing threads with fork, replace the most likely
cause with a redundant simple data member.
2013-09-07 21:23:03 -05:00
Antoine Pitrou
7b4769937f
Issue #18808 : Thread.join() now waits for the underlying thread state to be destroyed before returning.
...
This prevents unpredictable aborts in Py_EndInterpreter() when some non-daemon threads are still running.
2013-09-07 23:38:37 +02:00
Andrew Svetlov
b1dd5572d3
Add docstring for threading.main_thread().
2013-09-04 10:33:11 +03:00
Andrew Svetlov
58b5c5ad14
Issue #18882 : Add threading.main_thread() function.
2013-09-04 07:01:07 +03:00
Charles-François Natali
79a53ea7d7
Issue #18418 : After fork(), reinit all threads states, not only active ones.
...
Patch by A. Jesse Jiryu Davis.
2013-08-30 23:34:26 +02:00
Charles-François Natali
9939cc89a4
Issue #18418 : After fork(), reinit all threads states, not only active ones.
...
Patch by A. Jesse Jiryu Davis.
2013-08-30 23:32:53 +02:00
Ezio Melotti
9a3777e525
#18705 : merge with 3.3.
2013-08-17 15:53:55 +03:00
Ezio Melotti
30b9d5d3af
#18705 : fix a number of typos. Patch by Févry Thibault.
2013-08-17 15:50:46 +03:00
Brett Cannon
cd171c8e92
Issue #18200 : Back out usage of ModuleNotFoundError (8d28d44f3a9a)
2013-07-04 17:43:24 -04:00
Brett Cannon
0a140668fa
Issue #18200 : Update the stdlib (except tests) to use
...
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Serhiy Storchaka
b00b596c05
Issue #11714 : Use 'with' statements to assure a Semaphore releases a
...
condition variable. Original patch by Thomas Rachel.
2013-04-22 22:54:16 +03:00
Serhiy Storchaka
81a5855a27
Issue #11714 : Use 'with' statements to assure a Semaphore releases a
...
condition variable. Original patch by Thomas Rachel.
2013-04-22 22:51:43 +03:00
R David Murray
5cbf3a0d6e
Merge #17435 : Don't use mutable default values in Timer.
...
Patch by Denver Coneybeare with some test modifications by me.
2013-03-30 17:22:30 -04:00
R David Murray
19aeb439c6
Issue #17435 : Don't use mutable default values in Timer.
...
Patch by Denver Coneybeare with some test modifications by me.
2013-03-30 17:19:38 -04:00
Raymond Hettinger
3030728138
Fix import
2013-03-20 19:28:19 -07:00
Raymond Hettinger
b65e579926
Improve variable names
2013-03-10 20:34:16 -07:00
Raymond Hettinger
ec4b174de4
Issue #17385 : Fix quadratic behavior in threading.Condition
2013-03-10 17:57:28 -07:00
Raymond Hettinger
720da57159
Update code to increment and decrement using the cleaner += 1 and -= 1 style.
2013-03-10 15:13:35 -07:00
Victor Stinner
ec89539ccc
Issue #14428 , #14397 : Implement the PEP 418
...
* Rename time.steady() to time.monotonic()
* On Windows, time.monotonic() uses GetTickCount/GetTickCount64() instead of
QueryPerformanceCounter()
* time.monotonic() uses CLOCK_HIGHRES if available
* Add time.get_clock_info(), time.perf_counter() and time.process_time()
functions
2012-04-29 02:41:27 +02:00
Antoine Pitrou
dd5aa36f17
Issue #14308 : Fix an exception when a dummy thread is in the threading module's active list after a fork().
2012-04-20 00:05:17 +02:00
Antoine Pitrou
8e6e0fdb7f
Issue #14308 : Fix an exception when a "dummy" thread is in the threading module's active list after a fork().
2012-04-19 23:55:01 +02:00
Victor Stinner
3d7c878fe3
Issue #14222 : Use the new time.steady() function instead of time.time() for
...
timeout in queue and threading modules to not be affected of system time
update.
2012-03-15 01:22:16 +01:00
Victor Stinner
135b6d8aa5
Close #13550 : Remove the debug machinery from the threading module: remove
...
verbose arguments from all threading classes and functions.
2012-03-03 01:32:57 +01:00
Benjamin Peterson
7bbb6e8cf9
merge 3.2
2012-02-03 19:09:38 -05:00
Benjamin Peterson
050a05aeef
remove unused import
2012-02-03 19:07:30 -05:00
Charles-François Natali
ded0348c08
Issue #13502 : threading: Fix a race condition in Event.wait() that made it
...
return False when the event was set and cleared right after.
2012-01-07 18:24:56 +01:00
Charles-François Natali
6d5f9e73d9
Issue #11870 : threading: Properly reinitialize threads internal locks and
...
condition variables to avoid deadlocks in child processes.
2011-12-18 18:35:09 +01:00
Charles-François Natali
61d28d6a74
Issue #13502 : threading: Fix a race condition in Event.wait() that made it
...
return False when the event was set and cleared right after.
2012-01-07 18:26:39 +01:00
Charles-François Natali
b055bf6acb
Issue #11870 : threading: Properly reinitialize threads internal locks and
...
condition variables to avoid deadlocks in child processes.
2011-12-18 18:45:16 +01:00
Ezio Melotti
f10644983e
Merge with 3.2.
2011-10-19 11:06:26 +03:00
Ezio Melotti
e130a52d8a
Remove duplication.
2011-10-19 10:58:56 +03:00
Benjamin Peterson
7761b951db
add ThreadError to threading.__all__ ( closes #12679 )
2011-08-02 13:05:47 -05:00
Éric Araujo
0cdd4454f3
Remove indirection in threading (issue #10968 ).
...
The public names (Thread, Condition, etc.) used to be factory functions
returning instances of hidden classes (_Thread, _Condition, etc.),
because (if Guido recalls correctly) this code pre-dates the ability to
subclass extension types.
It is now possible to inherit from Thread and other classes, without
having to import the private underscored names like multiprocessing did.
A doc update will follow: a patch is under discussion on the issue.
2011-07-28 00:28:28 +02:00
Antoine Pitrou
428bc6c48f
Issue #12573 : Add resource checks for dangling Thread and Process objects.
2011-07-15 22:15:38 +02:00
Antoine Pitrou
c081c0c6a0
Issue #12573 : Add resource checks for dangling Thread and Process objects.
2011-07-15 22:12:24 +02:00
Victor Stinner
2a12974bca
Close #12028 : Make threading._get_ident() public, rename it to
...
threading.get_ident() and document it. This function was used by
_thread.get_ident().
2011-05-30 23:02:52 +02:00
Victor Stinner
d5c355ccc7
Issue #11223 : Replace threading._info() by sys.thread_info
2011-04-30 14:53:09 +02:00
Victor Stinner
c2824d41c3
Issue #11915 : threading.RLock()._release_save() raises a RuntimeError if the
...
lock was not acquired.
2011-04-24 23:41:33 +02:00
Victor Stinner
754851f456
Issue #11223 : Add threading._info() function providing informations about the
...
thread implementation.
Skip test_lock_acquire_interruption() and test_rlock_acquire_interruption() of
test_threadsignals if a thread lock is implemented using a POSIX mutex and a
POSIX condition variable. A POSIX condition variable cannot be interrupted by a
signal (e.g. on Linux, the futex system call is restarted).
2011-04-19 23:58:51 +02:00
Antoine Pitrou
0bd4deba38
Issue #6064 : Add a `daemon` keyword argument to the threading.Thread
...
and multiprocessing.Process constructors in order to override the
default behaviour of inheriting the daemonic property from the current
thread/process.
2011-02-25 22:07:43 +00:00
Raymond Hettinger
5bdfd910f5
Remove out-of-date comment
2011-01-16 09:16:27 +00:00
Raymond Hettinger
5cee47f321
Add entry for Barrier objects.
2011-01-11 19:59:46 +00:00
Gregory P. Smith
9bd4a245f2
Fix the new bug introduced in the r87710 fix for issue 6643. DummyThread
...
deletes its _block attribute, deal with that. This prevents an uncaught
exception in a thread during test_thread.
This refactors a bit to better match what I did in the r87727 backport to 2.7.
2011-01-04 18:33:38 +00:00
Gregory P. Smith
96c886ce96
issue6643 - Two locks held within the threading module on each thread instance
...
needed to be reinitialized after fork(). Adds tests to confirm that they are
and that a potential deadlock and crasher bug are fixed (platform dependant).
2011-01-03 21:06:12 +00:00
Antoine Pitrou
401edd69cf
Issue #4188 : Avoid creating dummy thread objects when logging operations
...
from the threading module (with the internal verbose flag activated).
2010-12-17 17:42:16 +00:00
Kristján Valur Jónsson
6331520950
Issue 10260
...
Adding the wait_for() method to threading.Condition
2010-11-18 12:46:39 +00:00
Kristján Valur Jónsson
3be00037d6
issue 8777
...
Add threading.Barrier
2010-10-28 09:43:10 +00:00
Georg Brandl
b9a4391754
#10218 : return timeout status from Condition.wait, mirroring other primitives' behavior.
2010-10-28 09:03:20 +00:00
Brett Cannon
148724d39b
Rip out old testing code that was inlined in threading.
...
Partially closes issue 9346. Thanks Brian Brazil for the patch.
2010-07-23 15:50:02 +00:00
Antoine Pitrou
0454af9b54
Issue #850728 : Add a *timeout* parameter to the `acquire()` method of
...
`threading.Semaphore` objects. Original patch by Torsten Landschoff.
2010-04-17 23:51:58 +00:00
Antoine Pitrou
7c3e577395
Issue #7316 : the acquire() method of lock objects in the :mod:`threading`
...
module now takes an optional timeout argument in seconds. Timeout support
relies on the system threading library, so as to avoid a semi-busy wait
loop.
2010-04-14 15:44:10 +00:00
Senthil Kumaran
fdd4d0f5d6
Merged revisions 79817 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79817 | senthil.kumaran | 2010-04-06 08:53:33 +0530 (Tue, 06 Apr 2010) | 2 lines
Fix Issue8262 - changing RuntimeError wording to "Threads can only be started once"
........
2010-04-06 03:30:18 +00:00
Gregory P. Smith
3fdd9648cb
Merged revisions 78517 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78517 | gregory.p.smith | 2010-02-28 10:36:09 -0800 (Sun, 28 Feb 2010) | 3 lines
Issue #7481 : When a threading.Thread failed to start it would leave the
instance stuck in initial state and present in threading.enumerate().
........
2010-02-28 18:57:46 +00:00
Antoine Pitrou
434736a1a6
Issue #3001 : Add a C implementation of recursive locks which is used by
...
default when instantiating a `Threading.RLock` object. This makes
recursive locks as fast as regular non-recursive locks (previously,
they were slower by 10x to 15x).
2009-11-10 18:46:01 +00:00
Antoine Pitrou
b087268217
Merged revisions 76172 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r76172 | antoine.pitrou | 2009-11-09 17:00:11 +0100 (lun., 09 nov. 2009) | 5 lines
Issue #7282 : Fix a memory leak when an RLock was used in a thread other
than those started through `threading.Thread` (for example, using
`thread.start_new_thread()`.
........
2009-11-09 16:08:16 +00:00