Issue #11408: In threading.Lock.acquire(), only call gettimeofday() when

really necessary.  Patch by Charles-François Natali.
This commit is contained in:
Antoine Pitrou 2011-03-06 08:40:35 +01:00
parent f874debbf3
commit 125d5c8770
2 changed files with 5 additions and 2 deletions

View File

@ -55,6 +55,9 @@ Core and Builtins
Library
-------
- Issue #11408: In threading.Lock.acquire(), only call gettimeofday() when
really necessary. Patch by Charles-François Natali.
- Issue #11391: Writing to a mmap object created with
``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a
TypeError. Patch by Charles-François Natali.

View File

@ -54,8 +54,8 @@ acquire_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds)
_PyTime_timeval endtime;
_PyTime_gettimeofday(&endtime);
if (microseconds > 0) {
_PyTime_gettimeofday(&endtime);
endtime.tv_sec += microseconds / (1000 * 1000);
endtime.tv_usec += microseconds % (1000 * 1000);
}
@ -76,7 +76,7 @@ acquire_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds)
/* If we're using a timeout, recompute the timeout after processing
* signals, since those can take time. */
if (microseconds >= 0) {
if (microseconds > 0) {
_PyTime_gettimeofday(&curtime);
microseconds = ((endtime.tv_sec - curtime.tv_sec) * 1000000 +
(endtime.tv_usec - curtime.tv_usec));