
This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.
Created on2011-08-23 07:43 bymethane, last changed2022-04-11 14:57 byadmin. This issue is nowclosed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| use_monotonic_clock.patch | methane,2011-08-23 07:43 | review | ||
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 11723 | merged | methane,2019-02-01 16:43 | |
| PR 11723 | merged | methane,2019-02-01 16:43 | |
| Messages (13) | |||
|---|---|---|---|
| msg142789 -(view) | Author: Inada Naoki (methane)*![]() | Date: 2011-08-23 07:43 | |
Using CLOCK_MONOTONIC is better than CLOCK_REALTIME (default) for GILbecause settimeofday() may break the pthread_cond_timedwait().Attached patch uses CLOCK_MONOTONIC and clock_gettime. But I don't knowhow to write appropriate configure script."-lrt" is also needed to use clock_gettime() but I don't know how to addit to LIBS. | |||
| msg142791 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2011-08-23 07:59 | |
See also#10278. | |||
| msg142856 -(view) | Author: Charles-François Natali (neologix)*![]() | Date: 2011-08-23 18:54 | |
> Using CLOCK_MONOTONIC is better than CLOCK_REALTIME (default) for GIL> because settimeofday() may break the pthread_cond_timedwait().Indeed.A couple remarks:- regular locks and conditions variables exposed by the threading module suffer from the same problem- POSIX semaphores are also affected, but you can't select an alternative clock source- actually, CLOCK_MONOTONIC is affected by NTP adjustements: while it's guaranteed not to go backward, its rate can be affectedDid you really encounter this problem, or is this just a theoretical concern? | |||
| msg142858 -(view) | Author: Antoine Pitrou (pitrou)*![]() | Date: 2011-08-23 19:03 | |
The patch is ok on the principle, but we do need a check that CLOCK_MONOTONIC is supported at build time. | |||
| msg142859 -(view) | Author: Marc-Andre Lemburg (lemburg)*![]() | Date: 2011-08-23 19:15 | |
Antoine Pitrou wrote:> > The patch is ok on the principle, but we do need a check that CLOCK_MONOTONIC is supported at build time.I think we need both: a check at build time to avoidcompiler errors and a check at runtime whether the deploymentplatform supports the clock, plus a fallback solution in caseit is not available. | |||
| msg148525 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2011-11-28 23:46 | |
> The patch is ok on the principle, but we do need a check> that CLOCK_MONOTONIC is supported at build time.timemodule.c is now using "#ifdef CLOCK_MONOTONIC". | |||
| msg148528 -(view) | Author: Antoine Pitrou (pitrou)*![]() | Date: 2011-11-28 23:52 | |
Marc-Andre is right, a runtime check is probably also needed.(for example with mismatching kernel/libc) | |||
| msg148529 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2011-11-28 23:54 | |
pthread_condattr_setclock() result should be checked."The pthread_condattr_setclock() function may fail if:EINVAL The value specified by clock_id does not refer to a known clock, or is a CPU-time clock." | |||
| msg155837 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2012-03-15 01:22 | |
See also#14222. Python 3.3 has a new time.steady() function. | |||
| msg334621 -(view) | Author: Inada Naoki (methane)*![]() | Date: 2019-01-31 11:19 | |
ref:https://bugs.chromium.org/p/webrtc/issues/detail?id=9269macOS and iOS don't support pthread_condattr_setclock yet. | |||
| msg334623 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2019-01-31 11:33 | |
See alsobpo-23428: "Use the monotonic clock for thread conditions on POSIX platforms". | |||
| msg336032 -(view) | Author: Inada Naoki (methane)*![]() | Date: 2019-02-20 01:00 | |
New changeset001fee14e0f2ba5f41fb733adc69d5965925a094 by Inada Naoki in branch 'master':bpo-12822: use monotonic clock for condvar if possible (GH-11723)https://github.com/python/cpython/commit/001fee14e0f2ba5f41fb733adc69d5965925a094 | |||
| msg336061 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2019-02-20 10:36 | |
Thanks INADA-san for fixing this old issue! | |||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:57:21 | admin | set | github: 57031 |
| 2021-10-01 08:52:42 | vstinner | set | title: NewGIL should use CLOCK_MONOTONIC if possible. -> threading.Condition.wait(timeout) should use a monotonic clock: use pthread_condattr_setclock(CLOCK_MONOTONIC) |
| 2021-10-01 08:49:34 | vstinner | link | issue35747 superseder |
| 2021-10-01 08:49:02 | vstinner | link | issue31267 superseder |
| 2021-10-01 08:48:32 | vstinner | link | issue23428 superseder |
| 2019-02-20 10:36:02 | vstinner | set | messages: +msg336061 |
| 2019-02-20 01:00:28 | methane | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2019-02-20 01:00:13 | methane | set | messages: +msg336032 |
| 2019-02-01 16:43:27 | methane | set | stage: patch review pull_requests: +pull_request11602 |
| 2019-02-01 16:43:16 | methane | set | stage: (no value) pull_requests: +pull_request11601 |
| 2019-02-01 06:07:37 | anacrolix | set | nosy: -anacrolix |
| 2019-01-31 11:33:56 | vstinner | set | messages: +msg334623 |
| 2019-01-31 11:19:08 | methane | set | messages: +msg334621 components: + Interpreter Core, - None versions: + Python 3.8, - Python 3.2, Python 3.3 |
| 2012-03-15 01:22:35 | vstinner | set | messages: +msg155837 |
| 2011-11-28 23:54:44 | vstinner | set | messages: +msg148529 |
| 2011-11-28 23:52:36 | pitrou | set | messages: +msg148528 |
| 2011-11-28 23:46:55 | vstinner | set | messages: +msg148525 |
| 2011-11-26 01:09:19 | anacrolix | set | nosy: +anacrolix |
| 2011-08-23 19:15:12 | lemburg | set | nosy: +lemburg messages: +msg142859 |
| 2011-08-23 19:03:42 | pitrou | set | nosy: +pitrou messages: +msg142858 |
| 2011-08-23 18:54:28 | neologix | set | nosy: +neologix messages: +msg142856 |
| 2011-08-23 07:59:58 | vstinner | set | messages: +msg142791 |
| 2011-08-23 07:59:35 | vstinner | set | nosy: +vstinner |
| 2011-08-23 07:43:36 | methane | create | |