| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Tests by Jessica McKellar.
|
|\ |
|
| | |
|
| |
| |
| |
| | |
signal
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
Fixed ambigious reverse mappings. Added many new mappings. Import mapping
is no longer applied to modules already mapped with full name mapping.
Added tests for compatible pickling and unpickling and for consistency of
_compat_pickle mappings.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed ambigious reverse mappings. Added many new mappings. Import mapping
is no longer applied to modules already mapped with full name mapping.
Added tests for compatible pickling and unpickling and for consistency of
_compat_pickle mappings.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Retry:
* signal.sigtimedwait()
* threading.Lock.acquire()
* threading.RLock.acquire()
* time.sleep()
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
timeout when interrupted by a signal, except if the signal handler raises an
exception. This change is part of the PEP 475.
The asyncore and selectors module doesn't catch the InterruptedError exception
anymore when calling select.select(), since this function should not raise
InterruptedError anymore.
|
| |
| |
| |
| | |
Add _Py_fstat_noraise() function when a Python exception is not welcome.
|
|\ \
| |/ |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Use _PyTime_ROUND_FLOOR and _PyTime_ROUND_CEILING instead.
|
| |
| |
| |
| |
| | |
All these functions only accept positive timeouts, so this change has no effect
in practice.
|
| |
| |
| |
| | |
Add also more tests for ROUNd_FLOOR.
|
| |
| |
| |
| | |
calls fstat() once. Before fstat() was called twice, which was not necessary.
|
| |
| |
| |
| |
| | |
Add _PyTime_AsTimeval_noraise() function. Call it when it's not possible (or
not useful) to raise a Python exception on overflow.
|
| |
| |
| |
| |
| |
| |
| | |
Don't call _Py_open() from _close_open_fds_safe() because it is call just after
fork(). It's not good to play with locks (the GIL) between fork() and exec().
Use instead _Py_open_noraise() which doesn't touch to the GIL.
|
| |
| |
| |
| |
| | |
datetime.time: round towards minus infinity ("floor") instead of rounding
towards zero ("down").
|
| |
| |
| |
| |
| |
| | |
infinity (-inf) instead of rounding towards zero.
Replace _PyTime_ROUND_DOWN with _PyTime_ROUND_FLOOR.
|
| |
| |
| |
| |
| | |
* Remove _PyTime_gettimeofday()
* Add _PyTime_GetSystemClock()
|
| |
| |
| |
| | |
now is non-modifiable mapping.
|
| | |
|
| |
| |
| |
| |
| | |
module. time.clock_settime() now uses this rounding method instead of
_PyTime_ROUND_DOWN to handle correctly dates before 1970.
|
| |
| |
| |
| | |
Remove also the now unused _PyTime_AddDouble() function.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add also a new _PyTime_AsMicroseconds() function.
threading.TIMEOUT_MAX is now be smaller: only 292 years instead of 292,271
years on 64-bit system for example. Sorry, your threads will hang a *little
bit* shorter. Call me if you want to ensure that your locks wait longer, I can
share some tricks with you.
|
| |
| |
| |
| | |
I didn't notice that the ssl module uses private attributes of socket objects.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* _PyTime_AsTimeval() now ensures that tv_usec is always positive
* _PyTime_AsTimespec() now ensures that tv_nsec is always positive
* _PyTime_AsTimeval() now returns an integer on overflow instead of raising an
exception
|
| |
| |
| |
| |
| | |
Move Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS inside internal_select_ex() to
prepare a switch to the _PyTime_t type and retry syscall on EINTR.
|
| |
| |
| |
| |
| | |
* Add _PyTime_AsTimespec()
* Add unit tests for _PyTime_AsTimespec()
|
| | |
|
| |
| |
| |
| | |
* Add _PyTime_GetSystemClockWithInfo()
|
| |
| |
| |
| |
| |
| | |
* Add _PyTime_FromNanoseconds()
* Add _PyTime_AsSecondsDouble()
* Add unit tests for _PyTime_AsSecondsDouble()
|
| |
| |
| |
| |
| |
| | |
* Rename _PyTime_FromObject() to _PyTime_FromSecondsObject()
* Add _PyTime_AsNanosecondsObject() and _testcapi.pytime_fromsecondsobject()
* Add unit tests
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In practice, _PyTime_t is a number of nanoseconds. Its C type is a 64-bit
signed number. It's integer value is in the range [-2^63; 2^63-1]. In seconds,
the range is around [-292 years; +292 years]. In term of Epoch timestamp
(1970-01-01), it can store a date between 1677-09-21 and 2262-04-11.
The API has a resolution of 1 nanosecond and use integer number. With a
resolution on 1 nanosecond, 64-bit IEEE 754 floating point numbers loose
precision after 194 days. It's not the case with this API. The drawback is
overflow for values outside [-2^63; 2^63-1], but these values are unlikely for
most Python modules, except of the datetime module.
New functions:
- _PyTime_GetMonotonicClock()
- _PyTime_FromObject()
- _PyTime_AsMilliseconds()
- _PyTime_AsTimeval()
This change uses these new functions in time.sleep() to avoid rounding issues.
The new API will be extended step by step, and the old API will be removed step
by step. Currently, some code is duplicated just to be able to move
incrementally, instead of pushing a large change at once.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Also renames a local to avoid warnings about shadowing
|
| | |
|
| | |
|
|\ \
| |/
| |
| | |
writer failed in BufferedRWPair.close().
|
| |
| |
| |
| | |
writer failed in BufferedRWPair.close().
|
| |
| |
| |
| |
| |
| |
| | |
I expected more users of _Py_wstat(), but in practice it's only used by
Modules/getpath.c. Move the function because it's not needed on Windows.
Windows uses PC/getpathp.c which uses the Win32 API (ex: GetFileAttributesW())
not the POSIX API.
|
| |
| |
| |
| |
| |
| |
| | |
fstat(), these functions are always required.
Remove HAVE_STAT and HAVE_FSTAT defines, and stop supporting DONT_HAVE_STAT and
DONT_HAVE_FSTAT.
|
| | |
|
| | |
|