[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2021-10-01 Thread STINNER Victor


Change by STINNER Victor :


--
resolution: fixed -> duplicate
superseder:  -> NewGIL should use CLOCK_MONOTONIC if possible.

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2020-09-04 Thread STINNER Victor


STINNER Victor  added the comment:

See bpo-41710 "Timeout is affected by jumps in system time".

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-02-20 Thread STINNER Victor


STINNER Victor  added the comment:

INADA-san fixed bpo-12822 with:

New changeset 001fee14e0f2ba5f41fb733adc69d5965925a094 by Inada Naoki in branch 
'master':
bpo-12822: use monotonic clock for condvar if possible (GH-11723)
https://github.com/python/cpython/commit/001fee14e0f2ba5f41fb733adc69d5965925a094

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-02-19 Thread INADA Naoki


Change by INADA Naoki :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed
versions: +Python 3.8 -Python 3.5

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

> One workaround is to use Python to use the mutex+cond implementation of 
> pthread locks, since this one is already able to use CLOCK_MONOTONIC:

Does this have any drawbacks?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

> One workaround is to use Python to use the mutex+cond implementation of 
> pthread locks, since this one is already able to use CLOCK_MONOTONIC:

That this have any drawbacks?

--
nosy: +pablogsal

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread Andrey Ovchinnikov


Change by Andrey Ovchinnikov :


--
nosy: +anikey

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread STINNER Victor


STINNER Victor  added the comment:

See also bpo-12822: "NewGIL should use CLOCK_MONOTONIC if possible".

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread STINNER Victor


STINNER Victor  added the comment:

> Is there any progress on the issue? Should someone take over?

It's a limitation of the libc, not directly of Python.

The problem is that the sem_timedwait() function of the glibc doesn't allow to 
specify which clock is used:
https://sourceware.org/bugzilla/show_bug.cgi?id=14717

Someone has to contribute to the glibc to add an option to sem_init() or 
sem_timedwait() to allow to use a different clock than CLOCK_REALTIME.

One workaround is to use Python to use the mutex+cond implementation of pthread 
locks, since this one is already able to use CLOCK_MONOTONIC:
https://bugs.python.org/issue31267#msg302257

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread STINNER Victor


STINNER Victor  added the comment:

I closed bpo-35747 "Python threading event wait influenced by date change" as a 
duplicate of the issue.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2019-01-17 Thread STINNER Victor


STINNER Victor  added the comment:

I marked bpo-31267 "threading.Timer object is affected by changes to system 
time: Python locks should use a monotonic clock if available" as a duplicate of 
this issue.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2017-12-21 Thread Erik Bray

Change by Erik Bray :


--
pull_requests: +4856
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2016-08-24 Thread Charalampos Stratakis

Charalampos Stratakis added the comment:

Hello,

Is there any progress on the issue? Should someone take over?

--
nosy: +cstratak

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2015-02-17 Thread STINNER Victor

STINNER Victor added the comment:

Oh, I missed the issue #12822 which looks to fix similar bugs.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23428
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2015-02-09 Thread STINNER Victor

New submission from STINNER Victor:

Python 3.5 now requires a monotonic clock to start and has the C function 
_PyTime_monotonic().

Python/condvar.h and Python/thread_pthread.h should use the monotonic clock 
CLOCK_MONOTONIC, not the system clock CLOCK_REALTIME. See the PEP 418 for the 
rationale.

Most platforms support pthread_condattr_setclock(CLOCK_MONOTONIC), except Mac 
OS X and old versions of Android.

The glib looks to use pthread_cond_timedwait_relative_np() for Mac OS X:
https://mail.gnome.org/archives/commits-list/2014-February/msg07782.html

Note: Android had non-standard pthread_cond_timedwait_monotonic() and 
pthread_cond_timedwait_monotonic_np() functions. Android is not a official 
supported platform, and newer Android version now support 
pthread_condattr_setclock(). I prefer to not support old Android versions (yet).
https://android-review.googlesource.com/#/c/83881/

--

For Windows, SleepConditionVariableSRW() is used on Windows 7 and newer, 
otherwise WaitForSingleObjectEx() is used. By the way, the check looks to be 
done during the compilation. I should check which Windows version is used to 
build Python...

SleepConditionVariableSRW() and WaitForSingleObjectEx() both take a relative 
timeout, so they don't use (directly) the system clock. I don't see any 
required change for Windows.

According to the PEP 418: WaitForSingleObject() uses the same timer as 
GetTickCount() with the same precision.

Hum, it is not possible to interrupt such wait() with CTRL+c? time.sleep() is 
implemented with WaitForSingleObjectEx() with _PyOS_SigintEvent(). It doesn't 
look to be the case here.

--
components: Interpreter Core
messages: 235637
nosy: haypo
priority: normal
severity: normal
status: open
title: Use the monotonic clock for thread conditions on POSIX platforms
versions: Python 3.5

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23428
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2015-02-09 Thread STINNER Victor

STINNER Victor added the comment:

 Python/condvar.h and Python/thread_pthread.h should use the monotonic clock 
 CLOCK_MONOTONIC

Oh, I forgot that Python/thread_pthread.h only uses pthread_cond_timedwait() if 
semaphores are emulated with mutexes+conditional variables.

On most platforms, PyThread_acquire_lock_timed() is implemented with 
sem_timedwait(). Problem: sem_timedwait() requires an absolute time using the 
CLOCK_REALTIME clock and the clock is not yet configurable on Linux :-(

See the feature request in the glibc: Bug 14717 - Allow choice of clock source 
for calls to sem_timedwait() and pthread_mutex_timedwait() opened in 2012:
https://sourceware.org/bugzilla/show_bug.cgi?id=14717

Note: QNX provides sem_timedwait_monotonic().

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23428
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2015-02-09 Thread STINNER Victor

STINNER Victor added the comment:

cond_timedwait_monotonic.patch: Work-in-progress patch. It doesn't change 
configure.ac yet to check if pthread_condattr_setclock() is supported (with 
CLOCK_MONOTONIC).

--
keywords: +patch
Added file: http://bugs.python.org/file38069/cond_timedwait_monotonic.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23428
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23428] Use the monotonic clock for thread conditions on POSIX platforms

2015-02-09 Thread STINNER Victor

Changes by STINNER Victor victor.stin...@gmail.com:


--
nosy: +neologix

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23428
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com