From 2c3a256351488b0729437d59162e5181a3ab4dd1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Fri, 18 Aug 2006 03:40:13 +0000 Subject: [PATCH] Bug #1541863: uuid.uuid1 failed to generate unique identifiers on systems with low clock resolution. --- Lib/test/test_uuid.py | 2 +- Lib/uuid.py | 4 ++-- Misc/NEWS | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index 06ec51da79..90671be05d 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -429,7 +429,7 @@ class TestUUID(TestCase): # Make sure the generated UUIDs are actually unique. uuids = {} - for u in [uuid.uuid1() for i in range(1000)]: + for u in [uuid.uuid4() for i in range(1000)]: uuids[u] = 1 equal(len(uuids.keys()), 1000) diff --git a/Lib/uuid.py b/Lib/uuid.py index 684bbeb946..ae3da25ca5 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -488,8 +488,8 @@ def uuid1(node=None, clock_seq=None): # 0x01b21dd213814000 is the number of 100-ns intervals between the # UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00. timestamp = int(nanoseconds/100) + 0x01b21dd213814000L - if timestamp == _last_timestamp: - timestamp += 1 + if timestamp <= _last_timestamp: + timestamp = _last_timestamp + 1 _last_timestamp = timestamp if clock_seq is None: import random diff --git a/Misc/NEWS b/Misc/NEWS index d9bff35ba7..1f96071fc8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -9,6 +9,12 @@ What's New in Python 2.5 ? *Release date: XX-SEP-2006* +Library +------- + +- Bug #1541863: uuid.uuid1 failed to generate unique identifiers + on systems with low clock resolution. + Build ----- -- 2.40.0