Issue #22182: Use e.args to unpack exceptions correctly in distutils.file_util.move_file.

Patch by Claudiu Popa.

--HG--
branch : 3.4
Issue #22182: Use e.args to unpack exceptions correctly in distutils.file_util.move_file.

Patch by Claudiu Popa.
Issue #22287: On UNIX, _PyTime_gettimeofday() now uses
clock_gettime(CLOCK_REALTIME) if available. As a side effect, Python now
depends on the librt library on Solaris and on Linux (only with glibc older
than 2.17).
Issue #22043: _PyTime_Init() now checks if the system clock works.

Other changes:

* The whole _PyTime API is private (not defined if Py_LIMITED_API is set)
* _PyTime_gettimeofday_info() also returns -1 on error
* Simplify PyTime_gettimeofday(): only use clock_gettime(CLOCK_REALTIME) or
  gettimeofday() on UNIX. Don't fallback to ftime() or time() anymore.

--HG--
extra : amend_source : 10ff7c3f16a5660ec2e3792e97f30072adb370e0
Issue #22043: Simplify time.perf_counter() on Windows

QueryPerformanceFrequency() cannot fail on Windows XP and later according to
its documentation: raise an exception on error and drop the fallback to the
system clock.

--HG--
extra : amend_source : b0e0ea06768a6b53874e289594e2cfc1f98abd2f
Issue #22043: Oops, fix perf_counter() on UNIX if no monotonic clock is
available (unlikely)

--HG--
extra : amend_source : d69eeb14108ecabe75ffc08ba293824708720a57
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.

--HG--
branch : 3.4
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.
Issue #22098: ctypes' BigEndianStructure and LittleEndianStructure now define an empty __slots__ so that subclasses don't always get an instance dict.

Patch by Claudiu Popa.